z

zongmin-yu

@zongmin-yu/sqlite-literature-management-fastmcp-mcp-server
0 Stars 533 次浏览 zongmin-yu 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

通用资源管理系统

一个灵活的系统,用于管理各种类型的资源(论文、书籍、网页等)并将它们与知识图谱集成。

功能

核心功能

  • 通过内部UUID系统进行通用资源识别
  • 支持多种资源类型(论文、网页、书籍、视频、博客)
  • 每个资源支持多个标识符(arxiv, DOI, semantic scholar, ISBN, URL)
  • 结构化的笔记记录,包括标题和内容
  • 状态跟踪(未读、正在阅读、已完成、已归档)

实体集成

  • 将资源链接到知识图谱实体
  • 跟踪资源与实体之间的关系
  • 灵活的关系类型(讨论、介绍、扩展等)
  • 与记忆图集成

前提条件

该系统与MCP Memory Server集成,以实现持久的知识图谱存储。

快速开始

  1. 使用我们的模式创建一个新的SQLite数据库:

bash

创建一个新的数据库

sqlite3 sources.db < create_sources_db.sql

  1. 安装资源管理服务器:

bash

为Claude Desktop安装,并指定数据库路径

fastmcp install source-manager-server.py --name "Source Manager" -e SQLITE_DB_PATH=/path/to/sources.db

模式

核心表

sql
-- 资源表
CREATE TABLE sources (
id UUID PRIMARY KEY,
title TEXT NOT NULL,
type TEXT CHECK(type IN ('paper', 'webpage', 'book', 'video', 'blog')) NOT NULL,
identifiers JSONB NOT NULL,
status TEXT CHECK(status IN ('unread', 'reading', 'completed', 'archived')) DEFAULT 'unread'
);

-- 资源笔记
CREATE TABLE source_notes (
source_id UUID REFERENCES sources(id),
note_title TEXT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (source_id, note_title)
);

-- 实体链接
CREATE TABLE source_entity_links (
source_id UUID REFERENCES sources(id),
entity_name TEXT,
relation_type TEXT CHECK(relation_type IN ('discusses', 'introduces', 'extends', 'evaluates', 'applies', 'critiques')),
notes TEXT,
PRIMARY KEY (source_id, entity_name)
);

使用示例

1. 管理资源

添加一篇带有多个标识符的论文:

python
add_source(
title="Attention Is All You Need",
type="paper",
identifier_type="arxiv",
identifier_value="1706.03762",
initial_note={
"title": "Initial thoughts",
"content": "Groundbreaking paper introducing transformers..."
}
)

向同一篇论文添加另一个标识符

add_identifier(
title="Attention Is All You Need",
type="paper",
current_identifier_type="arxiv",
current_identifier_value="1706.03762",
new_identifier_type="semantic_scholar",
new_identifier_value="204e3073870fae3d05bcbc2f6a8e263d9b72e776"
)

添加一个网页:

python
add_source(
title="Understanding Transformers",
type="webpage",
identifier_type="url",
identifier_value="https://example.com/transformers",
)

2. 笔记记录

向资源添加笔记:

python
add_note(
title="Attention Is All You Need",
type="paper",
identifier_type="arxiv",
identifier_value="1706.03762",
note_title="Implementation details",
note_content="The paper describes the architecture..."
)

3. 实体链接

将资源链接到实体:

python
link_to_entity(
title="Attention Is All You Need",
type="paper",
identifier_type="arxiv",
identifier_value="1706.03762",
entity_name="transformer",
relation_type="introduces",
notes="First paper to introduce the transformer architecture"
)

按实体查询资源:

python
get_entity_sources(
entity_name="transformer",
type_filter="paper",
relation_filter="discusses"
)

最佳实践

  1. 资源管理

    • 在引用中使用一致的标题
    • 提供尽可能多的标识符
    • 保持笔记结构清晰,有明确的标题- 使用适当的来源类型
  2. 实体链接

    • 关系类型要具体
    • 为关系添加上下文注释
    • 根据记忆图验证实体名称
    • 保持实体关系的专注性

技术细节

  1. 来源识别

    • 内部 UUID 系统用于一致引用
    • 每个来源多个外部标识符
    • 灵活的标识符类型(arxiv, doi, url 等)
    • 基于标题和类型的模糊匹配
  2. 数据组织

    • 带有标题的结构化笔记
    • 清晰的来源类型分类
    • 实体关系跟踪
    • 状态管理

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 为新功能添加测试
  4. 提交拉取请求

相关 MCP 服务