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
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。