1. Conduid
  2. Data
  3. Sqlite Literature Management Fastmcp MCP Server
MCP server · Data

Sqlite Literature Management Fastmcp MCP Server

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

Unclaimed MIT last commit 7 months ago datamcpagentllmfastmcpsqlitememory
54Fair

Scored 14 hours ago · breakdown

About Sqlite Literature Management Fastmcp MCP Server

Sqlite Literature Management Fastmcp MCP Server is an MCP server published by zongmin-yu in the Data category: a flexible system for managing various types of sources (papers, books, webpages, etc.) and integrating them with knowledge graphs.

The repository has 19 stars and 9 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/zongmin-yu/sqlite-literature-management-fastmcp-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Sqlite Literature Management Fastmcp MCP Server

Powered by Claude · Grounded in docs

I know everything about Sqlite Literature Management Fastmcp MCP Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 6 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • !Dependencies pinnedNo lockfile. Installs can pull different code over time.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

Universal Source Management System

A lightweight FastMCP server for managing literature, notes, entity links, and reading-list resources in a local SQLite database.

Current Scope

This repository provides:

  • Local SQLite-backed source management
  • Notes attached to sources
  • Entity links between sources and named concepts
  • Read-only database inspection tools
  • MCP resources for source lookup and reading lists
  • Normalized identifier storage with a transitional JSON cache

It does not integrate with MCP Memory Server or an external memory graph.

Quick Start

  1. Create a database from the current schema:
sqlite3 sources.db < create_sources_db.sql
  1. Install the FastMCP server with your database path:
fastmcp install sqlite-paper-fastmcp-server.py --name "Source Manager" -e SQLITE_DB_PATH=/path/to/sources.db
  1. Optional: use the checked-in demo fixture at examples/sources.db.

Docker

This server can be packaged as a containerized stdio MCP server.

Build the image:

docker build -t sqlite-lit-mcp .

Run it with a persistent SQLite volume:

mkdir -p data
docker run --rm -i \
  -e SQLITE_DB_PATH=/data/sources.db \
  -v "$(pwd)/data:/data" \
  sqlite-lit-mcp

Notes:

  • The image defaults SQLITE_DB_PATH to /data/sources.db.
  • If the database file does not exist, the container initializes it from create_sources_db.sql.
  • If you are mounting an older database, apply the required migrations under migrations/ before starting the server.
  • This repo runs as a stdio MCP server, so there is no HTTP port to expose by default.

With Docker Compose:

docker compose run --rm sqlite-lit-mcp

Current Tool Surface

Implemented tools:

  • read_query
  • list_tables
  • describe_table
  • get_table_stats
  • get_database_info
  • vacuum_database
  • add_sources
  • add_notes
  • update_status
  • add_identifiers
  • link_to_entities
  • get_source_entities
  • update_entity_links
  • remove_entity_links
  • get_entity_sources

Implemented resources:

  • source://<id>
  • source://by-identifier/<type>/<value>
  • reading-list://unread
  • reading-list://reading
  • entity://<entity_name>

Schema Notes

The current schema centers on four tables:

  • sources
  • source_identifiers
  • source_notes
  • source_entity_links

sources.identifiers is still kept as a transitional JSON cache, but identifier lookups now use source_identifiers.

Supported identifier types:

  • semantic_scholar
  • doi
  • arxiv
  • openalex
  • pmid
  • isbn
  • url

Supported entity relation types:

  • discusses
  • introduces
  • extends
  • evaluates
  • applies
  • critiques
  • supports
  • contradicts
  • refutes

Lightweight provenance fields live on sources:

  • provider
  • discovered_via
  • discovered_at

The schema now uses PRAGMA user_version = 3.

Migration

If you have a version 0 or version 1 database, apply:

sqlite3 /path/to/sources.db < migrations/2026-03-09__normalize-identifiers.sql
sqlite3 /path/to/sources.db < migrations/2026-03-09__expand-entity-relation-types.sql

If you already migrated to version 2, apply:

sqlite3 /path/to/sources.db < migrations/2026-03-09__expand-entity-relation-types.sql

These migrations:

  • adds source_identifiers
  • backfills identifier rows from the legacy JSON column
  • adds provenance fields
  • expands source_entity_links.relation_type to include supports, contradicts, and refutes
  • updates PRAGMA user_version to 3

The server checks PRAGMA user_version on connection and will reject older databases until they are migrated.

Package Layout

The implementation is organized under sqlite_lit_server/:

  • app.py creates the FastMCP instance and registers tools/resources
  • db.py owns connection setup and schema-version checks
  • repository.py keeps SQL-heavy lookup logic close to the data layer
  • tools_admin.py, tools_sources.py, and tools_entities.py hold the MCP tools
  • resources.py defines the MCP resources

sqlite-paper-fastmcp-server.py remains as a thin compatibility shim.

Batch Import Sources

add_sources is the batch import entrypoint for new sources. It accepts one argument named sources, where each item is:

[title, source_type, identifier_type, identifier_value, initial_note]

initial_note must be either null or an object with both title and content.

Supported source_type values:

  • paper
  • webpage
  • book
  • video
  • blog

Supported identifier_type values:

  • semantic_scholar
  • doi
  • arxiv
  • openalex
  • pmid
  • isbn
  • url

Duplicate handling:

  • Exact identifier matches return Source already exists together with the existing source payload.
  • Title-based fuzzy matches return Potential duplicates found. Please verify or use add_identifiers if these are the same source.
  • Successful batch writes return one result per input item in the same order as the request.

Example MCP/JSON payload:

{
  "sources": [
    [
      "Attention Is All You Need",
      "paper",
      "arxiv",
      "1706.03762",
      {
        "title": "Initial thoughts",
        "content": "Transformers start here."
      }
    ],
    [
      "OpenAlex Import",
      "paper",
      "openalex",
      "W1234567890",
      null
    ]
  ]
}

Example Python call:

add_sources([
    (
        "Attention Is All You Need",
        "paper",
        "arxiv",
        "1706.03762",
        {
            "title": "Initial thoughts",
            "content": "Transformers start here.",
        },
    ),
    (
        "OpenAlex Import",
        "paper",
        "openalex",
        "W1234567890",
        None,
    ),
])

The same tool payloads work whether you start the server locally or through Docker with docker compose run --rm sqlite-lit-mcp.

Batch Write Conventions

Plural write tools accept lists and return a per-input result list in the same order. Related batch tools include:

  • add_notes
  • add_identifiers
  • update_status
  • link_to_entities

Example Usage

Add another identifier:

add_identifiers([
    (
        "Attention Is All You Need",
        "paper",
        "arxiv",
        "1706.03762",
        "semantic_scholar",
        "204e3073870fae3d05bcbc2f6a8e263d9b72e776",
    ),
])

Read a source resource:

source://by-identifier/arxiv/1706.03762

README fetched from the repository 6 hours ago. The original is authoritative.

Questions

About Sqlite Literature Management Fastmcp MCP Server

How do I install Sqlite Literature Management Fastmcp MCP Server?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Sqlite Literature Management Fastmcp MCP Server safe to use with an AI agent?

Its trust score is 54 out of 100 (fair). It passes 4 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Sqlite Literature Management Fastmcp MCP Server still maintained?

The last commit was 7 months ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.