
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
YUZongmin
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
Recommended Servers
Apple MCP Server
Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.

Supabase MCP Server
A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.
Crypto Price & Market Analysis MCP Server
A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface.
MCP PubMed Search
Server to search PubMed (PubMed is a free, online database that allows users to search for biomedical and life sciences literature). I have created on a day MCP came out but was on vacation, I saw someone post similar server in your DB, but figured to post mine.
MCP DuckDB Knowledge Graph Memory Server
A memory server for Claude that stores and retrieves knowledge graph data in DuckDB, enhancing performance and query capabilities for conversations with persistent user information.
dbt Semantic Layer MCP Server
A server that enables querying the dbt Semantic Layer through natural language conversations with Claude Desktop and other AI assistants, allowing users to discover metrics, create queries, analyze data, and visualize results.
mixpanel
Connect to your Mixpanel data. Query events, retention, and funnel data from Mixpanel analytics.
Metabase MCP Server
Enables AI assistants to interact with Metabase databases and dashboards, allowing users to list and execute queries, access data visualizations, and interact with database resources through natural language.
Todoist MCP
An MCP server that enables LLMs to interact with Todoist tasks, projects, and other features through the Todoist API.

Notion API MCP Server
Enables advanced todo list management and content organization using Notion's API, supporting features like creating databases, dynamic filtering, and collaborative task tracking.