meteor-mcp
Provides complete Meteor.js v3.4.0 API documentation, code examples, and architectural guides to AI coding assistants.
README
Meteor.js MCP Server
A Model Context Protocol (MCP) server that provides complete Meteor.js v3.4.0 API documentation, code examples, and architectural guides to AI coding assistants like Claude, Cursor, Windsurf, and any MCP-compatible client.
212 API entries across 20 modules — all embedded as static data, no external network calls required.
Why
Meteor.js is a powerful full-stack JavaScript framework, but AI coding assistants often lack up-to-date knowledge of its APIs, especially the v3 async-first changes. This MCP server gives any AI assistant instant access to accurate, audited Meteor documentation so it can:
- Look up any Meteor API method with full signatures, parameters, and return types
- Get working code examples for common patterns (pub/sub, methods, auth, etc.)
- Understand Meteor v3's async-first architecture and migration from Fibers
- Follow best practices for security, reactivity, and project structure
Tools
The server exposes 5 MCP tools:
| Tool | Description |
|---|---|
meteor_search |
Full-text search across all 212 API entries with score-based ranking |
meteor_api_reference |
Get complete reference for an API module (e.g. collections, accounts) |
meteor_method_lookup |
Look up a specific method by name (e.g. Meteor.publish, Mongo.Collection.find) |
meteor_code_examples |
Get annotated code examples for 15 topics |
meteor_guide |
Get conceptual guidance on 10 architectural topics |
API Coverage
| Module | Entries | Description |
|---|---|---|
accounts |
35 | User accounts, login, OAuth, password management |
collections |
27 | Mongo.Collection, Cursor, CRUD operations |
tracker |
21 | Tracker.autorun, Computation, Dependency, reactivity |
meteor_core |
17 | Meteor.startup, settings, environment flags, promisify |
pubsub |
15 | Meteor.publish, subscribe, publication lifecycle |
package_js |
14 | Package.describe, api.use, Npm.depends |
methods |
11 | Meteor.methods, callAsync, applyAsync, Error |
check |
10 | check(), Match patterns and validators |
ejson |
9 | EJSON serialization, custom types |
reactive_dict |
9 | ReactiveDict get/set/equals/all |
webapp |
7 | WebApp HTTP handlers, runtime config |
connections |
5 | DDP.connect, Meteor.status, reconnect |
app_config |
5 | App.info, accessRule, mobile config |
assets |
5 | Assets.getText/getBinary (sync + async) |
ddp_rate_limiter |
4 | DDPRateLimiter rules and configuration |
environment |
4 | EnvironmentVariable, bindEnvironment |
timers |
4 | Meteor.setTimeout/setInterval with env binding |
session |
4 | Session get/set/equals |
reactive_var |
3 | ReactiveVar get/set |
email_pkg |
3 | Email.send, sendAsync, hookSend |
Plus 15 code example topics and 10 architectural guides.
Quick Start
Public instance (fastest)
A public instance is available — no setup required:
https://meteor-mcp.sembilan.cloud/mcp
Add it to your MCP client and start using it immediately.
Docker Hub (recommended for self-hosting)
docker pull dochafizhanif/meteor-mcp
docker run -d -p 8080:8080 dochafizhanif/meteor-mcp
The server runs at http://localhost:8080/mcp.
Custom port: The container listens on port 8080 internally. If that port is already in use on your machine, map it to any available port:
docker run -d -p 3000:8080 dochafizhanif/meteor-mcp # available on port 3000
docker run -d -p 9090:8080 dochafizhanif/meteor-mcp # available on port 9090
The MCP endpoint will then be at http://localhost:<your-port>/mcp.
Portainer
- Go to Containers → click Add container
- Fill in the following fields:
- Name:
meteor-mcp(or any name you prefer) - Image:
dochafizhanif/meteor-mcp:latest
- Name:
- Under Network ports configuration, click publish a new network port and enter:
- host:
8080(or any available port on your machine, e.g.3000,9090) - container:
8080(always8080— this is the port the server listens on inside the container)
- host:
- Click Deploy the container
The MCP endpoint will be at http://YOUR_SERVER_IP:<host-port>/mcp.
For example, if you set the host port to 9090, the endpoint is http://YOUR_SERVER_IP:9090/mcp.
Build from source (Docker)
git clone https://github.com/apitlekays/meteor-mcp.git
cd meteor-mcp
docker compose up -d --build
Local server (stdio)
pip install fastmcp==3.0.2
python local_server.py
Client Configuration
Claude Desktop / Claude Code
Add to your MCP settings:
{
"mcpServers": {
"meteor": {
"url": "https://meteor-mcp.sembilan.cloud/mcp"
}
}
}
Or if you're self-hosting:
{
"mcpServers": {
"meteor": {
"url": "http://YOUR_SERVER_IP:8080/mcp"
}
}
}
For local stdio mode:
{
"mcpServers": {
"meteor": {
"command": "python",
"args": ["/path/to/meteor-mcp/local_server.py"]
}
}
}
Cursor
Go to Settings > MCP Servers > Add Server and enter the URL:
https://meteor-mcp.sembilan.cloud/mcp
Project Structure
meteor-mcp/
├── server.py # Remote MCP server (streamable-http, port 8080)
├── local_server.py # Local MCP server (stdio, for dev/testing)
├── tools.py # MCP tool definitions (5 tools)
├── search.py # Score-based search engine
├── data/
│ ├── __init__.py # Aggregates all modules into API_REGISTRY
│ ├── meteor_core.py # Meteor.startup, settings, isClient/isServer, promisify
│ ├── methods.py # Meteor.methods, call, callAsync, apply, Error
│ ├── pubsub.py # Meteor.publish, subscribe, publication lifecycle
│ ├── collections.py # Mongo.Collection, Cursor, ObjectID
│ ├── accounts.py # Accounts, login, user management, OAuth
│ ├── connections.py # DDP.connect, Meteor.status, reconnect
│ ├── check.py # check(), Match patterns
│ ├── ejson.py # EJSON serialization
│ ├── tracker.py # Tracker.autorun, Computation, Dependency
│ ├── session.py # Session get/set/equals
│ ├── reactive_var.py # ReactiveVar
│ ├── reactive_dict.py # ReactiveDict
│ ├── email_pkg.py # Email.send, sendAsync, hooks
│ ├── assets.py # Assets.getText/getBinary (sync + async)
│ ├── ddp_rate_limiter.py # DDPRateLimiter rules
│ ├── webapp.py # WebApp HTTP handlers, runtime config
│ ├── app_config.py # App.info, mobile configuration
│ ├── package_js.py # Package.describe, onUse, Npm.depends
│ ├── timers.py # Meteor.setTimeout/setInterval
│ ├── environment.py # EnvironmentVariable, bindEnvironment
│ ├── examples.py # 15 topics of annotated code examples
│ └── guides.py # 10 conceptual architecture guides
├── Dockerfile
├── docker-compose.yml
└── requirements.txt # fastmcp==3.0.2
How It Works
All Meteor.js API documentation is embedded as Python dictionaries — no database, no network calls, no API keys. Each API entry contains:
- name and signature — the method name and call signature
- description — detailed explanation of behavior, parameters, and edge cases
- params — typed parameter list with optional flags
- returns — return type and description
- environment —
client,server, oranywhere - is_reactive — whether the API is a reactive data source
- deprecated — migration guidance for deprecated APIs
- examples — annotated code snippets showing real usage
- tags — keywords for search ranking
The search engine uses score-based ranking: exact name match (100pts) > partial name (50pts) > tag match (30pts) > description match (10pts).
Deployment
Docker on a VPS
ssh root@your-vps-ip
git clone https://github.com/apitlekays/meteor-mcp.git
cd meteor-mcp
docker compose up -d --build
Ensure port 8080 is open:
ufw allow 8080
Health Check
The Docker container includes a health check. Verify it's running:
docker compose ps
Behind a Reverse Proxy (nginx)
If you want HTTPS, put nginx in front:
location /mcp {
proxy_pass http://localhost:8080/mcp;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
Tech Stack
- Python 3.11 — runtime
- FastMCP 3.0.2 — MCP server framework
- Streamable HTTP — transport protocol (port 8080)
- Docker — containerized deployment
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器