MCP connector for Snipara project memory and context optimization
Project description
snipara-mcp
snipara-mcp is the lightweight stdio MCP connector for Snipara project memory
and context optimization.
Memory belongs to the project, not the model.
Use it when an MCP client needs a local stdio process that talks to Snipara's hosted project memory and context optimization APIs. If your client supports streamable HTTP MCP directly, prefer the hosted endpoint and skip the local process.
What Is Snipara?
Snipara is project-scoped persistent context for AI-assisted work.
It gives Claude Code, Cursor, Codex, OpenAI Agents, and other MCP-compatible clients a shared memory layer that survives sessions, users, tools, and model switches.
Your agent still uses its own LLM. Snipara gives it the right project context: source-backed docs, reviewed memory, shared guidance, and code graph structure.
Why MCP?
MCP is becoming a standard adapter layer for agent tools. snipara-mcp makes
Snipara available through that layer without forcing developers into a specific
IDE, model, or orchestration framework.
The integration should feel small:
uvx snipara-mcp
The impact is larger: agents can retrieve durable project context instead of starting cold every session.
What It Unlocks
| Need | Snipara MCP tool group |
|---|---|
| Ask project docs a source-backed question | rlm_context_query, rlm_get_chunk |
| Recall durable decisions and learnings | rlm_recall |
| Persist reusable memory after a task | rlm_remember, rlm_end_of_task_commit |
| Reuse team standards and shared guidance | rlm_shared_context |
| Inspect structural code relationships | rlm_code_callers, rlm_code_imports, rlm_code_neighbors |
| Plan risky code changes | rlm_code_symbol_card, rlm_code_impact on paid Context plans |
Architecture
flowchart LR
Agents["Claude Code, Cursor, Codex, ChatGPT, OpenAI agents"] --> Stdio["snipara-mcp stdio process"]
Stdio --> Hosted["Hosted Snipara MCP API"]
Hosted --> Context["Context engine"]
Hosted --> Memory["Project memory"]
Hosted --> Graph["Code graph"]
Context --> AgentLLM["Agent's own LLM"]
Memory --> AgentLLM
Graph --> AgentLLM
Hosted HTTP Or Stdio?
Use the hosted HTTP endpoint when your MCP client supports streamable HTTP:
{
"mcpServers": {
"snipara": {
"type": "http",
"url": "https://api.snipara.com/mcp/your-project-id-or-slug",
"headers": {
"Authorization": "Bearer snp-your-key"
}
}
}
}
Use snipara-mcp when your client expects a local stdio command:
{
"mcpServers": {
"snipara": {
"command": "uvx",
"args": ["snipara-mcp"],
"env": {
"SNIPARA_API_KEY": "snp-your-key",
"SNIPARA_PROJECT_ID": "your-project-id-or-slug"
}
}
}
}
Decision rule:
- HTTP MCP first for modern clients
snipara-mcpfor stdio-only clients or local compatibilitycreate-sniparawhen you want guided setup across clients and templates
Install
No local install:
uvx snipara-mcp
Python package:
pip install snipara-mcp
With RLM Runtime helper integration:
pip install "snipara-mcp[rlm]"
Quickstart
Sign in through the browser:
pip install snipara-mcp
snipara login
Initialize a project:
snipara init
The initializer detects common project files, writes MCP configuration, and can upload local project docs when you are authenticated.
Useful options:
snipara init --slug my-project
snipara init --dry-run
snipara init --no-upload
snipara init --skip-test
Claude Code
claude mcp add snipara uvx snipara-mcp
Then export credentials in your shell:
export SNIPARA_API_KEY="snp-your-key"
export SNIPARA_PROJECT_ID="your-project-id-or-slug"
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"snipara": {
"command": "uvx",
"args": ["snipara-mcp"],
"env": {
"SNIPARA_API_KEY": "snp-your-key",
"SNIPARA_PROJECT_ID": "your-project-id-or-slug"
}
}
}
}
Environment
| Variable | Required | Description |
|---|---|---|
SNIPARA_API_KEY |
Yes, unless using snipara login |
Snipara API key |
SNIPARA_PROJECT_ID |
Yes, unless using SNIPARA_PROJECT_SLUG |
Project identifier |
SNIPARA_PROJECT_SLUG |
Yes, unless using SNIPARA_PROJECT_ID |
Project slug |
SNIPARA_API_URL |
No | Defaults to https://api.snipara.com |
OAuth tokens created by snipara login are stored in ~/.snipara/tokens.json.
If a project id or slug is set, the connector selects the matching token and
does not silently fall back to another project.
What You Get
The connector exposes the same MCP contract as the hosted backend. The packaged tool surface is generated from the server source of truth.
Common tool groups:
- retrieval:
rlm_context_query,rlm_search,rlm_get_chunk,rlm_load_document - durable memory:
rlm_recall,rlm_remember,rlm_memory_compact - shared context:
rlm_shared_context, collection and template tools - document upload:
rlm_upload_document,rlm_sync_documents - project setup: client, project, and business-context workspace tools
- operations:
rlm_settings,rlm_index_health,rlm_reindex - code graph:
rlm_code_*tools when code indexes are available - coordination: swarm, hierarchical task, and state tools when enabled
Tool availability can vary by plan, hosted deployment, and project index state.
CLI Commands
| Command | Description |
|---|---|
snipara login |
Browser login and token setup |
snipara init |
Initialize Snipara in the current project |
snipara logout |
Clear stored tokens |
snipara status |
Show auth and project status |
snipara-mcp |
Run the MCP stdio server |
Legacy aliases such as snipara-init, snipara-mcp-login,
snipara-mcp-logout, and snipara-mcp-status are still supported.
Relationship To Other Repos
| Repo | Role |
|---|---|
Snipara/snipara-server |
Hosted and self-hosted server surface |
alopez3006/snipara-mcp |
This stdio connector package |
Snipara/snipara-memory |
Open memory primitives and schema |
snipara-mcp is intentionally thin. It should be easy to install, easy to
audit, and boring to operate. The heavy lifting stays in Snipara's hosted
context and memory engine.
Development
pip install -e ".[dev]"
pytest
ruff check .
The source of truth for the generated tool contract lives in the Snipara server. When backend tools change, regenerate the packaged contract before publishing this package.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snipara_mcp-2.8.7.tar.gz.
File metadata
- Download URL: snipara_mcp-2.8.7.tar.gz
- Upload date:
- Size: 102.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9df38ac8d5ed8b91c997c8dd50da3278c8c94667239b3b304f0b4563b0820295
|
|
| MD5 |
53fcb3ca0ef91cc5bf1de340c2e99abf
|
|
| BLAKE2b-256 |
8f7f31e84b227316d8ed2e855fb4a9f9c05a025b4642158236ff44df52e04a1e
|
File details
Details for the file snipara_mcp-2.8.7-py3-none-any.whl.
File metadata
- Download URL: snipara_mcp-2.8.7-py3-none-any.whl
- Upload date:
- Size: 100.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab3e65f7d5c3bb13909773d5f54d9fcbec2990bf774942340b2c008f97f7b533
|
|
| MD5 |
d60b086c94103b01932b522b778992e8
|
|
| BLAKE2b-256 |
c2d747f65b5bc1ee7c219bb3dd75a37b7a1987dcd56dc827a461f3da50929c00
|