Saga
A local-first MCP server for document ingestion and semantic search, providing tools to add, search, and retrieve documents, chunks, and code blocks.
README
Saga MCP Server
Saga is a local-first MCP server for document ingestion and semantic search. It provides document, chunk, and code-block retrieval tools over MCP (stdio or HTTP stream).
Requirements
- Node.js 22+
- npm 10+
Install
From npm
npm install -g @maxinedotdev/saga
From source
git clone https://github.com/maxinedotdev/saga.git
cd saga
npm install
npm run build
Server Setup
Create ~/.saga/saga.toml:
[server]
transport = "httpStream"
base_dir = "~/.saga"
[server.http]
host = "127.0.0.1"
port = 8080
endpoint = "/mcp"
stateless = true
[env]
MCP_EMBEDDING_BASE_URL = "http://127.0.0.1:1234/v1"
MCP_EMBEDDING_MODEL = "llama-nemotron-embed-1b-v2"
Notes:
stateless = trueis recommended and avoids session/SSE stream churn.- If you want stdio instead of HTTP, set
transport = "stdio"and usecommandmode in your MCP client.
Run
Foreground
node dist/server.js --config ~/.saga/saga.toml
Background service
macOS:
npm run service:install:mac
npm run service:status:mac
Linux (systemd user service):
npm run service:install:linux
npm run service:status:linux
Windows (run terminal as Administrator):
npm run service:install:windows
npm run service:status:windows
MCP Client Config
URL mode (HTTP stream)
Use:
http://127.0.0.1:8080/mcp
Kilo (mcp_settings.json):
{
"saga": {
"type": "streamable-http",
"url": "http://127.0.0.1:8080/mcp",
"timeout": 600,
"disabled": false
}
}
Codex (~/.codex/config.toml):
[mcp_servers.saga]
enabled = true
url = "http://127.0.0.1:8080/mcp"
Command mode (stdio)
{
"mcpServers": {
"saga": {
"command": "saga",
"env": {
"MCP_BASE_DIR": "~/.saga",
"MCP_EMBEDDING_BASE_URL": "http://127.0.0.1:1234/v1",
"MCP_EMBEDDING_MODEL": "llama-nemotron-embed-1b-v2"
}
}
}
}
Tools
add_documentcrawl_documentationsearch_documentsget_documentlist_documentsget_uploads_pathprocess_uploadslist_uploads_filesdelete_documentdelete_crawl_sessionget_context_windowquerysearch_code_blocksget_code_blockssearch_documents_with_ai(only registered when AI provider config is present)
Key Config
Config source precedence:
- Environment variables
- TOML config (
MCP_CONFIG_TOMLorSAGA_CONFIG_TOML) - Defaults
Common variables:
MCP_BASE_DIR(default~/.saga)MCP_TRANSPORT(stdioorhttpStream)MCP_HTTP_HOST(default127.0.0.1)MCP_HTTP_PORT(default8080)MCP_HTTP_ENDPOINT(default/mcp)MCP_HTTP_PUBLIC(truebinds to0.0.0.0)MCP_HTTP_STATELESS(default HTTP behavior is stateless; setfalsefor session mode)MCP_EMBEDDING_BASE_URL(required)MCP_EMBEDDING_MODELMCP_AI_BASE_URL(enablessearch_documents_with_ai)MCP_AI_MODELMCP_AI_API_KEY
Development
npm run dev
npm run build
npm run test
npm run test:unit
npm run test:integration
npm run test:benchmark
npm run test:coverage
npm run db:init
npm run db:drop
npm run db:benchmark
Data Layout
By default Saga stores data under ~/.saga/:
uploads/data/lancedb/logs/(whenMCP_LOG_TO_FILE=true)
Troubleshooting
If logs show lines like establishing new SSE stream for session ID ..., Saga is running HTTP stream in stateful mode. Set MCP_HTTP_STATELESS=true (or server.http.stateless = true in TOML) and restart.
Saga does not automatically publish logs to a VS Code UI panel. Use process stdout/stderr or service log files:
- macOS/Linux service scripts:
~/.saga/logs/saga-mcp.out.logand~/.saga/logs/saga-mcp.err.log - Foreground run: terminal output
- Optional file logging: set
MCP_LOG_TO_FILE=true(writes under~/.saga/logs/)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.