Skip to main content

A flexible system for managing various types of sources (papers, books, webpages, etc.) and integrating them with knowledge graphs

Project description

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

  1. Create a new SQLite database with our schema:
# Create a new database
sqlite3 sources.db < create_sources_db.sql
  1. 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

  1. Source Management

    • Use consistent titles across references
    • Provide as many identifiers as available
    • Keep notes structured with clear titles
    • Use appropriate source types
  2. Entity Linking

    • Be specific with relation types
    • Add contextual notes to relationships
    • Verify entity names against memory graph
    • Keep entity relationships focused

Technical Details

  1. 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
  2. Data Organization

    • Structured notes with titles
    • Clear source type categorization
    • Entity relationship tracking
    • Status management

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new features
  4. Submit a pull request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_yuzongmin_sqlite_literature_management_fastmcp_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_yuzongmin_sqlite_literature_management_fastmcp_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_yuzongmin_sqlite_literature_management_fastmcp_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f1bdb3c9f8823f92bd40df4afdb81176c44e94479ca8ae13fafce8491854ba54
MD5 8232de8982cf124dc44bd3878c41a678
BLAKE2b-256 7ce5ff0777fc76957b06828bd1e6fc05545f46fbc126ee3d891efadc9eed86bf

See more details on using hashes here.

File details

Details for the file iflow_mcp_yuzongmin_sqlite_literature_management_fastmcp_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_yuzongmin_sqlite_literature_management_fastmcp_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_yuzongmin_sqlite_literature_management_fastmcp_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a506df6730514c584a5af14fbff2725bde344abe221b12bd737b4f11eb079192
MD5 0f7c333970b4ecf23fc28457a7d42fbb
BLAKE2b-256 1128a6673708b92bb075aceddee2e6e47683b91efc0abc955781ca86e2ee0932

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page