Server for managing academic literature with structured note-taking and organization, designed for seamless interaction with Claude. Built with SQLite for simplicity and portability.
A flexible system for managing various types of sources (papers, books, webpages, etc.) and integrating them with knowledge graphs.
This system integrates with the MCP Memory Server for persistent knowledge graph storage.
# Create a new database sqlite3 sources.db < create_sources_db.sql
# 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) );
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", )
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..." )
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" )
Source Management
Entity Linking
Source Identification
Data Organization
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!