返回市场
sqlite论文阅读快速mcp服务器

sqlite论文阅读快速mcp服务器

作者:zongmin-yu15 星标更新:2025-04-16

项目介绍

统一资源管理系统

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

功能

核心功能

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

实体集成

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

预备条件

该系统与MCP记忆服务器集成,用于持久化存储知识图谱。

快速开始

  1. 创建一个新的SQLite数据库,使用我们的模式:
# 创建一个新的数据库
sqlite3 sources.db < create_sources_db.sql
  1. 安装资源管理服务器:
# 为Claude Desktop安装资源管理服务器,并指定数据库路径
fastmcp install source-manager-server.py --name "Source Manager" -e SQLITE_DB_PATH=/path/to/sources.db

数据库模式

核心表

-- 资源表
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. 资源管理

添加具有多个标识符的论文:

add_source(
    title="Attention Is All You Need",
    type="paper",
    identifier_type="arxiv",
    identifier_value="1706.03762",
    initial_note={
        "title": "初始想法",
        "content": "引入Transformer的开创性论文..."
    }
)

# 向同一论文添加另一个标识符
add_identifier(
    title="Attention Is All You Need",
    type="paper",
    current_identifier_type="arxiv",
    current_identifier_value="11706.03762",
    new_identifier_type="semantic_scholar",
    new_identifier_value="204e3073870fae3d05bcbc2f6a8e263d9b72e776"
)

添加网页:

add_source(
    title="理解Transformer",
    type="webpage",
    identifier_type="url",
    identifier_value="https://example.com/transformers",
)

2. 笔记记录

向资源添加笔记:

add_note(
    title="Attention Is All You Need",
    type="paper",
    identifier_type="arxiv",
    identifier_value="1706.03762",
    note_title="实现细节",
    note_content="论文描述了架构..."
)

3. 实体链接

将资源链接到实体:

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="首次介绍Transformer架构的论文"
)

按实体查询资源:

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

最佳实践

  1. 资源管理

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

    • 对关系类型具体明确
    • 添加关系的上下文注释
    • 验证实体名称是否与记忆图谱匹配
    • 保持实体关系的聚焦

技术细节

  1. 资源标识

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

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

贡献

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