Skip to main content
Glama
StaryMoon

Paper Memory MCP Lite

by StaryMoon
README.md
# Paper Memory MCP Lite

> Local-first MCP-style research memory for papers, notes, figures, experiment logs, and GitHub README files.

[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](pyproject.toml)
[![SQLite FTS](https://img.shields.io/badge/search-SQLite%20FTS5-purple)](#features)

<p align="center">
  <img src="assets/screenshots/semantic-scholar.png" alt="Semantic Scholar public homepage screenshot" width="880">
</p>

<sub>Image source: public Semantic Scholar homepage screenshot, [https://www.semanticscholar.org/](https://www.semanticscholar.org/). Used as a visual reference for paper search and research-memory workflows; not an endorsement by Semantic Scholar.</sub>

Paper reading gets messy fast: one PDF has the key idea, one Markdown note has your interpretation, one experiment log has the actual failure, and one README has the code status. This project gives agents a tiny local memory layer that indexes those files and exposes search through a simple MCP-compatible stdio server.

It is intentionally small: no cloud database, no embeddings service, no account, no background daemon. Everything lives in a local SQLite file.

If this helps your research workflow, a star helps other people find it.

## Features

- Index Markdown, text, JSON, YAML, and lightweight PDF text when optional PDF tooling is installed.
- Store paper notes, figure captions, experiment logs, repo READMEs, and daily briefings in one SQLite FTS database.
- Search snippets with source path, title, kind, and timestamp.
- Expose MCP-style tools:
  - `index_research_folder`
  - `search_research_memory`
  - `get_daily_context`
  - `link_paper_to_experiment`
  - `summarize_evidence_pack`
- Run as a CLI for smoke tests or as a stdio JSON-RPC server for agents.

## Quick Start

```bash
git clone https://github.com/StaryMoon/paper-memory-mcp-lite.git
cd paper-memory-mcp-lite
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

paper-memory index examples/sample_research
paper-memory search "continual deraining"
paper-memory daily
```

## MCP Server

Add this to an MCP client configuration and adjust the path:

```json
{
  "mcpServers": {
    "paper-memory-lite": {
      "command": "python3",
      "args": ["-m", "paper_memory_mcp_lite.server", "serve"],
      "env": {
        "PAPER_MEMORY_DB": "/absolute/path/to/paper-memory.sqlite"
      }
    }
  }
}
```

See [`docs/mcp-config.json`](docs/mcp-config.json) for a copyable example.

## Tool Behavior

| Tool | Purpose |
|---|---|
| `index_research_folder` | Index a folder of Markdown, text, JSON, YAML, and optional PDF text. |
| `search_research_memory` | Search local research notes and return snippets with file paths. |
| `get_daily_context` | Retrieve the most recent notes, logs, and briefings for daily planning. |
| `link_paper_to_experiment` | Store a lightweight relationship between a paper note and an experiment log. |
| `summarize_evidence_pack` | Build an evidence pack from search results without pretending it is a full literature review. |

## CLI Examples

```bash
paper-memory index ~/Downloads/文稿/papers
paper-memory search "reasoning RL benchmark" --limit 8
paper-memory link papers/deepseek-r1.md experiments/grpo-ablation.md --note "baseline for reasoning radar"
paper-memory evidence "image restoration continual prompt"
```

## Privacy Model

- Local SQLite database only.
- No telemetry.
- No API keys.
- No automatic background crawl.
- The indexer only reads folders you explicitly pass to it.

## Related Projects

- [ai-researcher-skills](https://github.com/StaryMoon/ai-researcher-skills)
- [codegraph-memory-mcp-lite](https://github.com/StaryMoon/codegraph-memory-mcp-lite)
- [obsidian-research-brief-kit](https://github.com/StaryMoon/obsidian-research-brief-kit)
- [awesome-ai-paper-reproduction-radar](https://github.com/StaryMoon/awesome-ai-paper-reproduction-radar)

## License

MIT.