mcp-catalogue
Allows AI agents to manage tasks and projects in Todoist through namespaced tools such as getting and creating tasks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-catalogueWhat services are available?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-catalogue
Browse-first MCP middleware — an LLM-friendly catalogue for discovering and invoking MCP tools across multiple services.
AI agents (Open WebUI, n8n, etc.) use this as a single MCP endpoint to browse, inspect, and call tools from many upstream MCP servers — without flooding their context with every tool schema upfront.
How It Works
Instead of connecting every MCP server directly (and loading all their tool schemas at session start), agents connect to one catalogue server and discover tools on demand:
browse_services → [{id: "todoist", name: "Todoist"}, {id: "outlook", ...}]
browse_tools("todoist") → ["todoist__get-task", "todoist__create-task", ...]
get_schemas(["todoist__get-task"]) → [full input schema]
call_tool("todoist__get-task", {id: "123"}) → resultRelated MCP server: ThinMCP
Quick Start
Prerequisites
Node.js 22+
An MCP server to point it at (or use the included smoke test)
Install & Run
# Install dependencies
npm install
# Copy a config (or create your own)
cp mcp-catalogue.dev.yaml mcp-catalogue.yaml
# Start in dev mode (with hot reload)
npm run dev
# Or with a custom config path and verbose logging
npx tsx src/index.ts --config ./mcp-catalogue.dev.yaml --verboseVerify It's Running
# Health check
curl http://localhost:8050/health
# Quick smoke test
node smoke-test.mjsConfiguration
Create a mcp-catalogue.yaml file:
port: 8050
auth:
enabled: false # Set to true and provide a token in production
token: ""
allowedOrigins: # Optional — restrict CORS to these origins when auth is on
- https://openwebui.local
connectors:
httpReuseIdleTimeoutSeconds: 300 # Reap idle upstream HTTP sessions after N seconds
sources:
- id: todoist
name: Todoist
description: Task and project management
transport: http
url: http://todoist-mcp:8081/mcp
filter: ["*"] # Glob patterns — only index matching tools
- id: outlook
name: Outlook
description: Email and calendar
transport: stdio
command: npx
args: ["-y", "@softeria/ms-365-mcp-server"]
env:
API_KEY: "your-key"Config Reference
Field | Description |
| HTTP port for the MCP endpoint (default: 8050) |
| Require |
| Static bearer token (override via |
| Optional list of origins allowed via CORS when auth is enabled. If omitted, the request |
| Idle timeout before a cached upstream HTTP session is reaped (default: 300) |
| Unique identifier for the source (used in namespaced tool names) |
|
|
| Upstream MCP server URL (required for HTTP transport) |
| Executable to spawn (required for stdio transport) |
| Optional glob patterns to curate which tools are indexed |
Sample configs are included:
mcp-catalogue.dev.yaml— LAN IPs for local developmentmcp-catalogue.prod.yaml— container-internal DNS for Docker
Docker
# Build
npm run docker:build
# Run
docker run -d \
--name mcp-catalogue \
-p 8050:8050 \
-v ./mcp-catalogue.yaml:/app/mcp-catalogue.yaml \
-e MCP_CATALOGUE_AUTH_TOKEN=your-token \
mcp-catalogueOr use the provided Dockerfile directly:
docker build -t mcp-catalogue .MCP Tools
The catalogue exposes these tools to connected AI agents:
Tool | What it does |
| List all available upstream services with descriptions and tool counts |
| List all tools for a specific service (namespaced names) |
| Get full input schemas for one or more tools in bulk |
| Call a tool on an upstream service (passes through the result) |
| Diagnostic — shows index summary, source availability, and error info |
Architecture
AI Agent ──Streamable HTTP──▶ mcp-catalogue ──HTTP/stdio──▶ todoist, outlook, ...
│
In-memory index
Session managementTransport: MCP Streamable HTTP (2025-11-05)
Auth: Optional bearer token, with optional CORS origin allowlist
Health:
GET /healthendpoint for monitoring (Uptime Kuma, etc.)HTTP connection reuse: keep-alive sessions per source, reaped after an idle timeout
Project Structure
src/
index.ts Entry point with CLI args
config.ts YAML loader with Zod validation
types.ts Shared types and interfaces
logger.ts Structured logger
namespace.ts Tool name namespacing (<sourceId>__<toolName>)
indexer.ts Startup index — fetches tools/list from all sources
catalogue-server.ts MCP server — tool definitions and request handling
sources/
http-source.ts HTTP transport client (Streamable HTTP)
stdio-source.ts Stdio transport client (subprocess, JSON-RPC)Scripts
Command | Description |
| Run with hot reload via |
| Run without watch |
| Compile TypeScript to |
| Build Docker image |
| Run Docker container |
This server cannot be deployed
Maintenance
Related MCP Connectors
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that wraps multiple backend servers for token-efficient tool discovery via lazy loading. It enables AI models to browse available servers and fetch specific tool schemas on-demand, significantly reducing initial context overhead.-
- FlicenseNot gradedqualityDmaintenanceA local MCP gateway that compresses multiple upstream servers into two tools, search and execute, to minimize model context usage. It provides a compact, code-driven interface for discovering and calling tools across various upstream sources on demand.-
- AlicenseNot gradedqualityAmaintenanceA proxy server that wraps existing MCP servers to significantly reduce token consumption by compressing tool descriptions into a two-step interface. It enables users to integrate extensive toolsets without exceeding context limits or incurring high API costs.124Apache 2.0
- AlicenseNot gradedqualityNot gradedmaintenanceA drop-in MCP proxy that aggregates multiple backend servers into two meta-tools for efficient tool discovery and execution. It enables AI clients to access hundreds of tools while minimizing context window usage through searchable indexing.1 npm-