S

SQLite学术管理器

@YUZongmin/sqlite-literature-management-fastmcp-mcp-server
0 Stars 560 次浏览 YUZongmin 更新于 2026-08-23

用于管理学术文献的服务器,具有结构化笔记和组织功能,专为与克劳德无缝交互而设计。使用SQLite构建,简单便携。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

通用资源管理系统

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

特性

核心特性

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

实体集成

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

前提条件

该系统与MCP Memory Server集成,用于持久化知识图谱存储。

快速开始

  1. 创建一个新的带有我们模式的SQLite数据库:
# Create a new database
sqlite3 sources.db < create_sources_db.sql
  1. 安装资源管理服务器:
# Install for Claude Desktop with your database path
fastmcp install source-manager-server.py --name "Source Manager" -e SQLITE_DB_PATH=/path/to/sources.db

模式

核心表

-- Sources table
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'
);

-- Source notes
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)
);

-- Entity links
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": "Initial thoughts",
        "content": "Groundbreaking paper introducing transformers..."
    }
)

# Add another identifier to the same paper
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"
)

添加一个网页:

add_source(
    title="Understanding Transformers",
    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="Implementation details",
    note_content="The paper describes the architecture..."
)

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="First paper to introduce the transformer architecture"
)

按实体查询资源:

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 服务