MCP server for Snipara - Context optimization and Agent infrastructure for LLMs
Project description
Snipara MCP Server
MCP server for Snipara - Context optimization and Agent infrastructure for LLMs.
Two Products in One:
- Snipara - Context optimization with 90% token reduction
- Snipara Agents - Multi-agent memory, swarms, and coordination
v2.1.0: Full tool parity with FastAPI server - all 43 tools now available via stdio transport!
Works with any MCP-compatible client including Claude Desktop, Cursor, Windsurf, Claude Code, Gemini, GPT, and more.
LLM-agnostic: Snipara optimizes context delivery - you use your own LLM (Claude, GPT, Gemini, Llama, etc.).
Installation
Option 1: uvx (Recommended - No Install)
uvx snipara-mcp
Option 2: pip
pip install snipara-mcp
Option 3: With RLM Runtime Integration
pip install snipara-mcp[rlm]
This installs rlm-runtime as a dependency, enabling programmatic access to Snipara tools within the RLM orchestrator.
Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"snipara": {
"command": "uvx",
"args": ["snipara-mcp"],
"env": {
"SNIPARA_API_KEY": "sk-your-api-key",
"SNIPARA_PROJECT_ID": "your-project-id"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"snipara": {
"command": "uvx",
"args": ["snipara-mcp"],
"env": {
"SNIPARA_API_KEY": "sk-your-api-key",
"SNIPARA_PROJECT_ID": "your-project-id"
}
}
}
}
Claude Code
claude mcp add snipara -- uvx snipara-mcp
Then set environment variables in your shell or .env file.
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"snipara": {
"command": "uvx",
"args": ["snipara-mcp"],
"env": {
"SNIPARA_API_KEY": "sk-your-api-key",
"SNIPARA_PROJECT_ID": "your-project-id"
}
}
}
}
Quick Setup (Recommended)
Option A: Initialize in Your Project (New!)
The fastest way to get started — run snipara-init in your project directory:
# Install
pip install snipara-mcp
# Initialize Snipara in your project
snipara-init
What happens:
- Detects your project type (Node.js, Python, Go, Rust, Java)
- Extracts project slug from git remote (or uses directory name)
- Creates
.mcp.jsonwith Snipara server configuration - Adds
SNIPARA_API_KEYto.env.example - Uploads CLAUDE.md, README.md, and docs/*.md (if authenticated)
- Tests API connection
Options:
snipara-init # Auto-detect and initialize
snipara-init --slug my-project # Use specific slug
snipara-init --dry-run # Preview what would be done
snipara-init --no-upload # Skip doc upload
snipara-init --skip-test # Skip connection test
Option B: Device Flow Login
Alternatively, sign in via browser with snipara-mcp-login. A free account and project are created automatically if you don't have one.
# Install
pip install snipara-mcp
# Sign in (opens browser, auto-creates account + project)
snipara-mcp-login
What happens:
- The CLI opens your browser to the Snipara authorization page (code pre-filled in URL)
- Sign in with GitHub or Google — a free account is created automatically if needed
- Select your project and click Authorize
- Return to your terminal — the CLI receives the token automatically (no copying needed)
- The CLI prints a
.mcp.jsonsnippet with your API key and MCP endpoint
Tokens are stored securely in ~/.snipara/tokens.json.
CLI Commands
| Command | Description |
|---|---|
snipara-init |
Initialize Snipara in current project (creates .mcp.json) |
snipara-mcp-login |
Sign in via browser (auto-creates free account + project) |
snipara-mcp-logout |
Clear all stored tokens |
snipara-mcp-status |
Show current auth status and stored tokens |
Environment Variables
| Variable | Required | Description |
|---|---|---|
SNIPARA_API_KEY |
Yes* | Your Snipara API key |
SNIPARA_PROJECT_ID |
Yes* | Your project ID |
SNIPARA_API_URL |
No | API URL (default: https://api.snipara.com) |
* Not required if you use snipara-mcp-login (OAuth tokens from ~/.snipara/tokens.json are used automatically).
Get your API key and project ID from snipara.com/dashboard or run snipara-mcp-login for automatic setup.
Available Tools
Primary Tool
rlm_context_query- Query optimized context from your documentationquery: Your question (required)max_tokens: Token budget (default: 4000)search_mode:keyword,semantic, orhybrid(default: hybrid)
Search & Navigation
rlm_search- Regex pattern searchrlm_sections- List all document sectionsrlm_read- Read specific line rangesrlm_stats- Documentation statistics
Advanced (Pro+)
rlm_decompose- Break complex queries into sub-queriesrlm_multi_query- Execute multiple queries with shared token budgetrlm_multi_project_query- Query across multiple projects in your team
Session Context
rlm_ask- Query with LLM-generated answer (uses server-side model)rlm_inject- Set context for subsequent queriesrlm_context- Show current contextrlm_clear_context- Clear contextrlm_settings- Get project settings from dashboardrlm_plan- Generate implementation plan from query
Summary Storage (New in 1.8.0)
rlm_store_summary- Store conversation summary for persistencesummary: Summary text (required)conversation_id: Optional conversation identifiermetadata: Optional JSON metadata
rlm_get_summaries- Retrieve stored summariesconversation_id: Filter by conversationlimit: Max results (default: 10)
rlm_delete_summary- Delete a stored summary by ID
Document Management (New in 1.2.0)
rlm_upload_document- Upload or update a single documentpath: Document path (e.g., "CLAUDE.md")content: Document content (markdown)
rlm_sync_documents- Bulk sync multiple documentsdocuments: Array of{path, content}objectsdelete_missing: Delete docs not in list (default: false)
Shared Context (Team+)
rlm_shared_context- Get merged context from linked shared collectionsmax_tokens: Token budget (default: 4000)categories: Filter by priority (MANDATORY, BEST_PRACTICES, GUIDELINES, REFERENCE)
rlm_list_templates- List available prompt templatesrlm_get_template- Get and render a prompt template with variables
Agent Memory (New in 1.6.0)
Persistent semantic memory for AI agents with confidence decay over time.
rlm_remember- Store a memory for later semantic recallcontent: Memory content (required)type:fact,decision,learning,preference,todo,contextscope:agent,project,team,usercategory: Optional groupingttl_days: Days until expiration (null = permanent)
rlm_recall- Semantically recall relevant memoriesquery: Search query (required)type,scope,category: Filterslimit: Max results (default: 5)min_relevance: Minimum score 0-1 (default: 0.5)
rlm_memories- List memories with filtersrlm_forget- Delete memories by ID or filter
Multi-Agent Swarms (New in 1.6.0)
Coordinate multiple AI agents with shared state, resource claims, and task queues.
rlm_swarm_create- Create a new agent swarmname: Swarm name (required)max_agents: Maximum agents (default: 10)
rlm_swarm_join- Join an existing swarmswarm_id,agent_id: Requiredrole:coordinator,worker,observer
rlm_claim- Claim exclusive access to a resource (file, function, module)- Auto-expires to prevent deadlocks
rlm_release- Release a claimed resourcerlm_state_get/rlm_state_set- Read/write shared swarm state- Optimistic locking with
expected_version
- Optimistic locking with
rlm_broadcast- Send event to all agents in swarmrlm_task_create- Create task in distributed queue- Supports
depends_onfor task dependencies
- Supports
rlm_task_claim- Claim next available task (respects dependencies)rlm_task_complete- Mark task as completed or failed
Example Usage
Once configured, ask your LLM:
"Use snipara to find how authentication works in my codebase"
The LLM will call rlm_context_query and return relevant documentation sections.
Agent Memory Example
"Remember that the user prefers TypeScript over JavaScript"
"What do you remember about the user's preferences?"
Multi-Agent Swarm Example
"Create a swarm called 'refactoring-team' for coordinating the auth refactor"
"Claim the file src/auth.ts so other agents don't modify it"
"Create a task to update the login flow, depending on the token-refresh task"
Alternative: Direct HTTP (No Local Install)
For clients that support HTTP transport (Claude Code, Cursor v0.48+), you can connect directly without installing anything:
Claude Code:
{
"mcpServers": {
"snipara": {
"type": "http",
"url": "https://api.snipara.com/mcp/YOUR_PROJECT_ID",
"headers": {
"Authorization": "Bearer sk-your-api-key"
}
}
}
}
CI/CD Integration
Sync docs automatically on git push using the webhook endpoint:
curl -X POST "https://api.snipara.com/v1/YOUR_PROJECT_ID/webhook/sync" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"documents": [{"path": "CLAUDE.md", "content": "..."}]}'
See GitHub Action example for automated sync on push.
Upgrading
When a new version is released on PyPI, follow these steps to get the latest tools:
1. Clear the uvx cache
# macOS/Linux
rm -rf ~/.cache/uv/tools/snipara-mcp
rm -rf ~/Library/Caches/uv/tools/snipara-mcp
# Windows
rmdir /s %LOCALAPPDATA%\uv\tools\snipara-mcp
2. Restart your MCP client
MCP tool definitions are loaded at startup. You must restart Claude Desktop, Cursor, Claude Code, or your MCP client to load the new tools.
3. Verify the version
After restart, the new tools should be available. You can check by asking:
"Use snipara to show settings"
If rlm_settings works, you have the latest version.
Important: Use uvx, not local Python
Always configure with uvx to get automatic updates from PyPI:
{
"command": "uvx",
"args": ["snipara-mcp"]
}
Do NOT use local Python paths like:
{
"command": "/usr/bin/python3",
"args": ["-m", "snipara_mcp"],
"env": { "PYTHONPATH": "/local/path" }
}
This bypasses PyPI and you won't get updates.
Troubleshooting
MCP tools not showing up
- Restart your MCP client - Tool definitions are cached at startup
- Clear uvx cache - Old version may be cached (see Upgrading section)
- Check config syntax - Ensure valid JSON in your MCP config file
"Invalid API key" error
- Verify your API key is correct in the dashboard
- Check the key hasn't been rotated
- Ensure no extra whitespace in the config
MCP server not connecting
- Check that
uvxis installed:which uvxoruvx --version - Install uv if missing:
curl -LsSf https://astral.sh/uv/install.sh | sh - Check Claude Code output panel for connection errors
RLM Runtime Integration (New in 1.4.0)
Snipara MCP can be used as a tool provider for rlm-runtime, enabling LLMs to query your documentation during autonomous code execution.
Installation
pip install snipara-mcp[rlm]
Usage with RLM Runtime
from rlm import RLM
# Snipara tools are auto-registered when credentials are set
rlm = RLM(
model="claude-sonnet-4-20250514",
snipara_api_key="rlm_your_key",
snipara_project_slug="your-project"
)
# The LLM can now query your docs during execution
result = rlm.run("Implement the auth flow following our coding standards")
Manual Tool Registration
from snipara_mcp import get_snipara_tools
# Get tools as RLM-compatible Tool objects
tools = get_snipara_tools(
api_key="rlm_your_key",
project_slug="your-project"
)
# Register with RLM
from rlm import RLM
rlm = RLM(model="claude-sonnet-4-20250514", tools=tools)
Available Tools (Programmatic API)
When using get_snipara_tools(), the following tools are returned:
Context Optimization:
| Tool | Description |
|---|---|
context_query |
Query optimized context (primary tool) |
ask |
Query with LLM-generated answer |
sections |
List all documentation sections |
search |
Regex pattern search |
read |
Read specific line ranges |
shared_context |
Get team best practices and standards |
decompose |
Break complex queries into sub-queries |
multi_query |
Execute multiple queries with shared budget |
multi_project_query |
Query across multiple projects in team |
stats |
Documentation statistics |
list_templates |
List available prompt templates |
get_template |
Get and render a prompt template |
inject |
Set context for subsequent queries |
context |
Show current session context |
clear_context |
Clear session context |
settings |
Get project settings |
plan |
Generate implementation plan |
Summary Storage (New in 1.8.0):
| Tool | Description |
|---|---|
store_summary |
Store conversation summary |
get_summaries |
Retrieve stored summaries |
delete_summary |
Delete a stored summary |
Agent Memory (New in 1.6.0):
| Tool | Description |
|---|---|
remember |
Store memory for semantic recall |
recall |
Semantically recall memories |
memories |
List memories with filters |
forget |
Delete memories |
Multi-Agent Swarms (New in 1.6.0):
| Tool | Description |
|---|---|
swarm_create |
Create agent swarm |
swarm_join |
Join existing swarm |
claim |
Claim resource access |
release |
Release resource |
state_get / state_set |
Shared state with optimistic locking |
broadcast |
Send event to swarm |
task_create / task_claim / task_complete |
Distributed task queue |
Environment Variables
export SNIPARA_API_KEY="rlm_your_key"
export SNIPARA_PROJECT_SLUG="your-project"
export SNIPARA_API_URL="https://api.snipara.com" # Optional
Version History
| Version | Date | Changes |
|---|---|---|
| 2.4.0 | 2026-02-11 | Add snipara-init CLI for project initialization |
| 2.3.1 | 2026-01-31 | Fix device flow CLI: remove misleading code entry step |
| 1.8.1 | 2025-01-25 | Add multi_project_query for cross-project search |
| 1.8.0 | 2025-01-25 | Full tool parity with FastAPI server (21 new tools) |
| 1.7.6 | 2025-01-24 | Fix Redis URL protocol support, graceful env handling |
| 1.7.5 | 2025-01-23 | CI/CD improvements, production environment secrets |
| 1.7.1 | 2025-01-22 | OAuth device flow fixes |
| 1.7.0 | 2025-01-21 | OAuth device flow authentication (snipara-mcp-login) |
| 1.6.0 | 2025-01-20 | Agent Memory and Multi-Agent Swarms (14 new tools) |
| 1.5.0 | 2025-01-18 | Auto-inject Snipara usage instructions |
| 1.4.0 | 2025-01-15 | RLM Runtime integration |
| 1.3.0 | 2025-01-10 | Shared Context tools (Team+) |
| 1.2.0 | 2025-01-05 | Document upload and sync tools |
| 1.1.0 | 2024-12-20 | Session context management |
| 1.0.0 | 2024-12-15 | Initial release with core context optimization |
Support
- Website: snipara.com
- Issues: github.com/Snipara/snipara-server/issues
- Email: support@starbox-group.com
License
MIT
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.6.1.tar.gz.
File metadata
- Download URL: snipara_mcp-2.6.1.tar.gz
- Upload date:
- Size: 41.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bee34d94ceef96f82c83efc975d9a657e96c7bb8b63c2d6429eb63fecc0e9c3
|
|
| MD5 |
c14d0707eccdbde9d143586b6dc53c4c
|
|
| BLAKE2b-256 |
43ddaf0b872f4ccd5d2b07c614da3d188919d9185500625191719ebbbd347f67
|
File details
Details for the file snipara_mcp-2.6.1-py3-none-any.whl.
File metadata
- Download URL: snipara_mcp-2.6.1-py3-none-any.whl
- Upload date:
- Size: 44.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d45c6bbdf0e9c96b7b738a17b718df836dd36a8a2236f062311f3701bed3574
|
|
| MD5 |
a2f45c8a7d96f0b4436492a269acd3e7
|
|
| BLAKE2b-256 |
f09384e6b9bd15d1960b0dd8da3ba49c89a7fcd2d79cd5ddf7c94706a101e651
|