
literateMCP
A flexible system for managing various types of sources (papers, books, webpages, etc.) and integrating them with knowledge graphs. - YUZongmin/sqlite-literature-management-fastmcp-mcp-server
README
Universal Source Management System
A flexible system for managing various types of sources (papers, books, webpages, etc.) and integrating them with knowledge graphs.
Features
Core Features
- Universal source identification with internal UUID system
- Support for multiple source types (papers, webpages, books, videos, blogs)
- Multiple identifier support per source (arxiv, DOI, semantic scholar, ISBN, URL)
- Structured note-taking with titles and content
- Status tracking (unread, reading, completed, archived)
Entity Integration
- Link sources to knowledge graph entities
- Track relationships between sources and entities
- Flexible relation types (discusses, introduces, extends, etc.)
- Integration with memory graph
Prerequisites
This system integrates with the MCP Memory Server for persistent knowledge graph storage.
Quick Start
- Create a new SQLite database with our schema:
# Create a new database
sqlite3 sources.db < create_sources_db.sql
- Install the source management server:
# 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
Schema
Core Tables
-- 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)
);
Usage Examples
1. Managing Sources
Add a paper with multiple identifiers:
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 a webpage:
add_source(
title="Understanding Transformers",
type="webpage",
identifier_type="url",
identifier_value="https://example.com/transformers",
)
2. Note Taking
Add notes to a source:
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. Entity Linking
Link source to entities:
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"
)
Query sources by entity:
get_entity_sources(
entity_name="transformer",
type_filter="paper",
relation_filter="discusses"
)
Best Practices
-
Source Management
- Use consistent titles across references
- Provide as many identifiers as available
- Keep notes structured with clear titles
- Use appropriate source types
-
Entity Linking
- Be specific with relation types
- Add contextual notes to relationships
- Verify entity names against memory graph
- Keep entity relationships focused
Technical Details
-
Source Identification
- Internal UUID system for consistent referencing
- Multiple external identifiers per source
- Flexible identifier types (arxiv, doi, url, etc.)
- Title and type based fuzzy matching
-
Data Organization
- Structured notes with titles
- Clear source type categorization
- Entity relationship tracking
- Status management
Contributing
- Fork the repository
- Create a feature branch
- Add tests for new features
- Submit a pull request
推荐服务器
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。

Supabase MCP Server
一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的。
MCP DuckDB Knowledge Graph Memory Server
一个为 Claude 设计的记忆服务器,它使用 DuckDB 存储和检索知识图谱数据,从而增强了对话的性能和查询能力,并能持久保存用户信息。
mixpanel
连接到您的 Mixpanel 数据。从 Mixpanel 分析查询事件、留存和漏斗数据。
Metabase MCP Server
使人工智能助手能够与 Metabase 数据库和仪表板进行交互,允许用户通过自然语言列出和执行查询、访问数据可视化以及与数据库资源进行交互。

Notion API MCP Server
使用 Notion API 实现高级待办事项列表管理和内容组织,支持创建数据库、动态筛选和协作任务跟踪等功能。

Airtable MCP Server
一个模型上下文协议(Model Context Protocol,MCP)服务器,通过 Claude Desktop 或其他 MCP 客户端,为以编程方式管理 Airtable 数据库、表格、字段和记录提供工具。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。