MCP Server
Connect Rasepi to AI assistants via the Model Context Protocol. 104 tools for managing hubs, entries, translations, expiry workflows, and more — all freshness-aware and tenant-scoped.
Overview
The Rasepi MCP Server gives AI assistants full access to your documentation platform. Instead of copying stale docs into prompts, your AI connects directly to the source of truth.
Full CRUD for hubs, entries, translations, expiry, templates, analytics, access control, and admin.
Every response includes expiry status. AI knows when content is stale, expiring soon, or up-to-date.
All operations are automatically scoped to your tenant. No cross-tenant data leakage.
Standard stdio transport works with Claude Desktop, VS Code, and any MCP-compatible client.
Quick Start
cd developers/mcp
npm install
npm run build
For development without building:
npx tsx src/index.ts
Authentication
The MCP server authenticates with a Bearer token passed via environment variables:
RASEPI_API_URL=http://localhost:5000
RASEPI_API_TOKEN=dev-token-{tenantId}:{userId}Dev tokens use the format dev-token-{'{'}tenantId{'}'}:{'{'}userId{'}'}. In production, use a JWT from the OAuth flow.
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"rasepi": {
"command": "node",
"args": ["path/to/developers/mcp/dist/index.js"],
"env": {
"RASEPI_API_URL": "http://localhost:5000",
"RASEPI_API_TOKEN": "dev-token-tenant:user"
}
}
}
}VS Code / GitHub Copilot
Create .vscode/mcp.json in your workspace:
{
"servers": {
"rasepi": {
"command": "node",
"args": ["path/to/developers/mcp/dist/index.js"],
"env": {
"RASEPI_API_URL": "http://localhost:5000",
"RASEPI_API_TOKEN": "dev-token-tenant:user"
}
}
}
}Other MCP Clients
Any MCP client that supports stdio transport can connect. The general pattern:
command: node path/to/mcp/dist/index.js
transport: stdio
env:
RASEPI_API_URL: http://localhost:5000
RASEPI_API_TOKEN: your-token
Hubs Tools (7)
list_hubsList all accessible hubs in the tenant
get_hubGet a hub by ID with full details
create_hubCreate a new hub
update_hubUpdate hub name, description, settings
delete_hubDelete a hub (owner only)
get_root_entryGet the root/landing entry for a hub
transfer_hub_ownershipTransfer hub ownership to another user
Entries Tools (12)
list_entriesList entries in a hub with pagination
get_entryGet full entry with content blocks
create_entryCreate a new entry with TipTap content
update_entryUpdate entry content (triggers stale detection)
delete_entryDelete or soft-delete an entry
publish_entryChange entry status to Published
search_entriesFull-text search within a hub
get_entry_blocksGet individual content blocks
update_entry_blockUpdate a single block
get_entry_versionsList version history
restore_entry_versionRestore a previous version
duplicate_entryClone an entry within the same hub
Translations Tools (7)
list_translationsList all translations for an entry
get_translationGet translation in a specific language
create_translationStart a new translation
get_translation_blocksGet block-level translation status
update_translation_blockUpdate a translated block
mark_translation_up_to_dateMark translation as current
get_translation_statusSummary of stale/current blocks
Expiry & Reviews Tools (20)
get_expiry_statusCheck entry expiry status
update_expirySet/change expiry date
renew_entryRenew an entry after review
list_reviewsList reviews for an entry
submit_reviewSubmit a content review
get_expiry_dashboardTenant-wide expiry overview
Templates Tools (10)
list_templatesBrowse available templates
get_templateGet template details and blocks
create_templateCreate a new template
update_templateUpdate template content
delete_templateDelete a template
apply_templateApply template to an entry
rate_templateRate a template (1-5 stars)
list_template_categoriesGet template categories
export_templateExport as JSON
import_templateImport from JSON
Analytics Tools (4)
get_entry_analyticsViews, edits, time spent on entry
get_entry_eventsActivity timeline for entry
get_hub_analyticsHub-level analytics summary
list_inactive_entriesFind entries with no recent activity