Multimodal RAG for source-backed AI answers MCP Server
Calypso RAG MCP Server
This MCP server exposes the Calypso RAG agent to MCP clients such as Cursor and Claude Desktop. It is a thin bridge to Calypso's OpenAI-compatible API and forwards every request to the calypso-rag-agent model.
Docs: https://docs.calypso.ms/
What you get
calypso-rag-agent: a single tool that sends each turn directly to the Calypso RAG agent
The tool accepts a single prompt argument.
What this MCP does
With calypso-rag-agent you can:
- Ask grounded questions against the configured Calypso knowledge base
- Continue a multi-turn conversation via the native
/v1/responsesconversation model - Reset the conversation context with
/new - Use the same OpenAI-compatible Responses endpoint that serves
calypso-rag-agent
Requirements
- Node.js 18+
- A Calypso API endpoint that exposes:
POST /v1/responses
- A Calypso API key (
sk-...)
Configuration
Environment variables:
CALYPSO_API_KEY(required)CALYPSO_API_BASE_URL(optional, defaulthttps://api.calypso.so/v1)
CLI flags:
--api-key--api-base-url
Configuration precedence:
- CLI flags / Smithery-provided command arguments
- Environment variables
- Default base URL (
https://api.calypso.so/v1)
Run with npx
npx -y @calypso-rag/calypso-mcp --api-key "sk-..."
Run with environment variables
env CALYPSO_API_KEY="sk-..." CALYPSO_API_BASE_URL="https://api.calypso.so/v1" npx -y @calypso-rag/calypso-mcp
Configure in Cursor
Add a new MCP server (command type) like:
npx -y @calypso-rag/calypso-mcp --api-key sk-... --api-base-url https://api.calypso.so/v1
Smithery
This repo includes a smithery.yaml manifest that launches the published package with CLI flags instead of relying on a prebuilt local dist/ directory.
For local .mcpb publishing, Smithery capabilities are populated from a full MCP-style server card. This repo keeps that metadata in smithery.server-card.json and publishes it with scripts/publish-smithery.mjs, because MCPB manifest.json does not support the full inputSchema shape Smithery expects for capabilities.
Smithery user config:
calypsoApiKey(required)calypsoApiBaseUrl(optional, defaults tohttps://api.calypso.so/v1)
The Smithery launch path is equivalent to:
npx -y @calypso-rag/calypso-mcp --api-key sk-... --api-base-url https://api.calypso.so/v1
Use calypsoApiBaseUrl only when targeting a self-hosted Calypso-compatible deployment. The cloud default does not need an override.
Publish-readiness validation
Before publishing to Smithery, run:
npm run validate:smithery
That validation flow does two things:
- builds the package
- runs a local stdio smoke test that launches the built server and verifies that
calypso-rag-agentis registered
You can also run the smoke test directly after a build:
npm run build
npm run smoke:stdio
To build the local Smithery / MCPB bundle:
npm run build:mcpb
That produces server.mcpb in the repo root. You can then publish it with Smithery:
smithery mcp publish ./server.mcpb -n multimodal-rag/calypso-mcp-server
To publish the bundle together with the capabilities metadata used by the Smithery UI:
SMITHERY_API_KEY=... npm run publish:smithery -- --name multimodal-rag/calypso-mcp-server
That command rebuilds server.mcpb and uploads it with the server card from smithery.server-card.json, so Smithery can render the calypso-rag-agent capability with its input schema.
Publish to npm
This package is intended to be published publicly as:
@calypso-rag/calypso-mcp
Recommended release flow:
npm login
npm whoami
npm run build
npm publish --access public
After publishing, clients can launch it with:
npx -y @calypso-rag/calypso-mcp
Troubleshooting
- Missing API key: provide
--api-keyorCALYPSO_API_KEY - Wrong API host: make sure
--api-base-url/CALYPSO_API_BASE_URLends in/v1 - Self-hosted deployment: only override the base URL if you are not using
https://api.calypso.so/v1 - Smithery launch mismatch: use the packaged
npx -y @calypso-rag/calypso-mcppath instead of runningnode dist/index.jsfrom a fresh clone - Missing
server.mcpb: runnpm run build:mcpbbefore callingsmithery mcp publish
Available tools
calypso-rag-agent
Direct Calypso RAG agent access.
Notes:
- It does not auto-route to other personas or agents.
- It uses
POST /v1/responsesinstead ofPOST /v1/chat/completions. - First turns create a named conversation, and follow-up turns chain with
previous_response_id. - Optional
fileIdsare attached asinput_fileparts and usemetadata._aicore.file_input_strategy = "rag_policy"for retrieval-backed agent-store semantics. - Use
/newas the prompt to reset the MCP conversation.
calypso-upload-agent-file
Uploads a file into the agent store and returns a compatible OpenAI-style file_id.
Notes:
- Sends
purpose=user_dataon the upload request. - Sends
target_modelso the file lands in the intended agent store instead of a generic attachment path. - Supports either
contentBase64for remote execution orfilePathfor local desktop usage. - Can optionally wait until the file is RAG-ready before returning.
calypso-upload-knowledge-file
Uploads a file into the durable knowledge store and indexing pipeline.
Notes:
- Uses
POST /v1/knowledge/files. - Returns knowledge-file and task metadata, not a chat attachment
file_id. - Supports optional
title,tags,metadata, andidempotencyKey. - Can optionally wait until indexing reaches a ready state before returning.
Common workflows (copy/paste)
Knowledge retrieval
- Summarize a topic:
Summarize the knowledge base guidance for campaign approvals
- Ask for a specific answer:
What does our documentation say about indexing retries?
- Compare two concepts:
Compare file indexing with retrieval execution in the current architecture
- Start a fresh thread:
/new
Multi-turn follow-up
- Refine a previous answer:
Focus only on the ingestion path and ignore retrieval
- Ask for sources or justification:
Explain which documented components are involved and why
Agent-store file flow
- Upload a file for the RAG agent:
- Call
calypso-upload-agent-filewithfilename,mimeType, and eithercontentBase64orfilePath
- Call
- Ask over the uploaded file:
- Call
calypso-rag-agentwith yourpromptand the returnedfileIds
- Call
- RAG semantics:
- The MCP automatically uses
rag_policywhenfileIdsare attached
- The MCP automatically uses
Knowledge-store file flow
- Upload durable knowledge:
- Call
calypso-upload-knowledge-filewith the file payload and optionaltitle,tags, ormetadata
- Call
- Wait for indexing:
- Pass
waitForIndexing: trueif you want the tool to block until the knowledge file is indexed
- Pass
Tips
- Start over: use
/newto reset the MCP conversation (newconversation_id+ cleared response chain).