fastmcp-fleet
Provides tools for managing secrets, passwords, and vaults through 1Password.
Allows interaction with Airtable bases, tables, and records.
Enables creating and listing tasks in Asana projects.
Provides authentication and user management capabilities through Auth0.
Provides search functionality via Brave Search.
Allows triggering and monitoring CircleCI pipelines.
Provides tools for managing Cloudflare zones, DNS, and other services.
Allows interaction with Confluence pages and content.
Provides monitoring and observability tools through Datadog.
Allows managing DigitalOcean droplets, resources, and more.
Provides tools for sending messages and interacting with Discord channels.
Allows querying and indexing data in Elasticsearch.
Provides tools for managing Gitea repositories and issues.
Enables creating and listing issues, managing repositories, and other GitHub operations.
Provides tools for managing GitLab repositories, merge requests, and more.
Allows interaction with Grafana dashboards and data sources.
Provides tools for managing contacts, deals, and other HubSpot CRM data.
Allows triggering and managing Jenkins jobs and builds.
Enables creating and searching Jira issues, managing projects.
Provides tools for managing Linear issues and projects.
Allows managing MailChimp campaigns, lists, and subscribers.
Provides tools for interacting with MongoDB databases and collections.
Allows querying and managing MySQL databases.
Provides tools for deploying and managing Netlify sites.
Enables creating pages and searching Notion workspaces.
Provides user management and authentication capabilities through Okta.
Provides mock integration with OpenAI's API for AI completions and models.
Allows creating and listing incidents in PagerDuty.
Provides monitoring and alerting capabilities via Prometheus.
Allows interacting with Redis data structures.
Provides tools for deploying and managing services on Render.
Allows sending emails and managing SendGrid templates.
Provides error tracking and monitoring through Sentry.
Enables posting messages and retrieving conversations in Slack.
Provides security vulnerability scanning and monitoring through Snyk.
Allows querying and managing SQLite databases.
Enables creating payment intents and listing charges in Stripe.
Provides infrastructure management capabilities through Terraform.
Allows sending SMS and listing messages via Twilio.
Provides secrets management and access control through HashiCorp Vault.
Provides tools for deploying and managing Vercel projects.
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., "@fastmcp-fleetsimulate a bug triage: search GitHub issues, create a Jira ticket, notify Slack"
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.
fastmcp-fleet
A local-first FastMCP platform of 160+ mock MCP servers — GitHub, Slack, Stripe, Jira, Notion, Cloudflare, Datadog, and more — running behind one central gateway. Zero live API calls. Deterministic. Perfect for agent trajectory testing and OpenHands integration.
Table of contents
Related MCP server: scv-triage
What is fastmcp-fleet?
fastmcp-fleet is a catalogue of 175 MCP servers — 170 active + 5 pilot, packaged behind one FastMCP gateway on port :8000. Every server can run fully offline — HTTP requests are intercepted by a custom transport that serves fixture JSON, and stateful tools persist to a per-server SQLite store so subsequent reads see prior writes.
The point is not to replace live SaaS APIs. It is to give AI agents (OpenHands, Claude, Cursor, custom stacks) a realistic, deterministic, credential-free environment for:
MCP tool discovery testing
Agent trajectory generation and validation
Multi-step workflow rehearsal (create issue → update task → post message)
CI/CD integration testing without hitting external quotas
Local development and demonstration
Why offline-first?
Real APIs | fastmcp-fleet |
Requires credentials for 40+ SaaS accounts | No credentials required |
Rate-limited by external providers | No rate limits |
Costs money (OpenAI, Anthropic, Stripe, ...) | Free |
Non-deterministic (state changes between test runs) | Deterministic (fixture + SQLite) |
Slow (network latency) | Fast (µs response times) |
Needs internet | Runs in an air-gapped container |
Set MCP_OFFLINE=1 (already the default in docker-compose.yml) and every server becomes a convincing local simulation.
Architecture
graph TD
Agent[OpenHands / Claude / Custom Agent]
Gateway[FastMCP Gateway<br/>:8000<br/>Bearer auth + rate limit]
Agent -->|MCP / streamable-http| Gateway
Gateway --> GH[github :8001]
Gateway --> JR[jira :8071]
Gateway --> SL[slack :8061]
Gateway --> ST[stripe :8154]
Gateway --> NT[notion :8081]
Gateway --> More[... 44 more]
GH -->|HTTP intercept| OT[OfflineTransport]
OT --> FX[fixtures/*.json]
OT --> LS[state.db — SQLite]
style Gateway fill:#4a5568,stroke:#2d3748,color:#fff
style OT fill:#ed8936,stroke:#c05621,color:#fff
style FX fill:#38a169,stroke:#276749,color:#fff
style LS fill:#38a169,stroke:#276749,color:#fffEach MCP server runs in its own container on its own port (8001–8173). The gateway aggregates all of them so an agent connects once and gets the full fleet.
Quickstart
Docker (one container, one command — recommended)
The whole fleet (175 servers, 539 tools, ~200 seeded mock rows) as one image on one port.
git clone https://github.com/deepakdalal1221/fastmcp-fleet.git
cd fastmcp-fleet
make startmake start builds docker/Dockerfile.mono (first time only, ~5 min) and runs it on http://localhost:9000/mcp. Point Claude Desktop / Cursor / any MCP client at that URL and every server is reachable via namespaced tools (github_list_issues, stripe_list_charges, etc.).
make logs-mono # tail startup logs (wait for 'all_in_one.ready mounted=175')
make stop # shut down
make restart # rebuild & restartState persists in ./state/ across restarts; delete that dir to reset all mock data.
Local (Python + uv)
git clone https://github.com/deepakdalal1221/fastmcp-fleet.git
cd fastmcp-fleet
uv sync --extra all --extra dev
uv run python -m pytest tests/ -q
# 200 passed in ~1sRun one server directly:
export MCP_OFFLINE=1
uv run python -m servers.github.server --port 8001Then point Claude Desktop or any MCP client at http://localhost:8001/mcp.
Docker (all 55 services + gateway)
cd deployment/compose
docker compose up -d --build
# Gateway available at http://localhost:8000The compose stack ships with MCP_OFFLINE: "1" set on every service via the x-common-env anchor, and a ./state:/state volume so SQLite state persists across restarts.
Server catalogue
170 active + 5 pilot = 175 servers across 13 categories. Full list of 175 catalogued in registry/servers/.
Category | Count | Servers |
AI / ML | 5 |
|
Business | 3 |
|
Cloud | 6 |
|
Communication | 4 |
|
Database | 5 |
|
Development | 2 |
|
DevOps | 4 |
|
Monitoring | 6 |
|
Productivity | 3 |
|
Project Management | 3 |
|
Search | 2 |
|
Security | 5 |
|
Storage | 1 |
|
Plus foundational: fetch, filesystem, time, github, postgres.
How offline mode works
sequenceDiagram
participant Agent
participant Server as MCP server<br/>(e.g. github)
participant OT as OfflineTransport
participant FS as fixtures/*.json
participant DB as state.db (SQLite)
Agent->>Server: tool_call(list_issues, owner=x, repo=y)
Server->>Server: is_offline() → True
Server->>DB: local_store.list_all("github", "issues:x/y")
DB-->>Server: [issue1, issue2]
Server-->>Agent: {"issues": [issue1, issue2]}
Note over Agent,DB: Non-mutating tools fall through to OfflineTransport
Agent->>Server: tool_call(get_repo, owner=x, repo=y)
Server->>OT: httpx GET /repos/x/y
OT->>FS: read fixtures/get_repos_x_y.json
FS-->>OT: JSON payload
OT-->>Server: 200 OK + payload
Server-->>Agent: {"id": ..., "full_name": ...}Layered lookup: specific fixture → default.json → synthetic {"offline": true, ...}. Add per-endpoint JSON files at servers/<id>/fixtures/<method>_<path-slug>.json to customize responses.
Local Store — stateful mocks
Nine servers wire mutation tools to a SQLite-backed writable state so agent workflows produce consistent results:
stateDiagram-v2
[*] --> Empty
Empty --> HasIssue: github.create_issue()
HasIssue --> HasIssue: github.list_issues() → returns created
HasIssue --> HasMore: jira.create_issue()
HasMore --> HasMore: slack.post_message()
HasMore --> Verified: chain_test asserts all readsStateful servers today:
Server | Write tool | Read tool | State key |
github |
|
|
|
jira |
|
|
|
asana |
|
|
|
linear |
|
|
|
slack |
|
|
|
stripe |
|
|
|
twilio |
|
|
|
pagerduty |
|
|
|
notion |
|
|
|
State survives docker compose down/up via the ./state:/state volume mount.
Add a new server in 5 minutes
# 1. Add an Entry to CATALOGUE (append at end — port assignment is index-based)
# Edit scripts/build_registry.py
# 2. Regenerate manifests
uv run python scripts/build_registry.py
# 3. Scaffold the server
uv run mcp-create <your-server-id>
# 4. Implement servers/<your-server-id>/tools.py following the pattern in
# servers/github/tools.py or servers/cloudflare/tools.py
# 5. Promote status: planned → active in registry/servers/<id>.yamlSee CONTRIBUTING.md for the full recipe (auth patterns, error mapping, response slimming, Local Store wiring).
Testing
uv run python -m pytest tests/ -q........................................................................ [ 36%]
........................................................................ [ 72%]
........................................................ [100%]
200 passed in 1.10sBreakdown:
190 contract tests validate every manifest (schema, unique ports, valid auth types) and every server file (importable,
register_toolsexists, tools registered)10 offline trajectory tests exercise create → read chains across the 9 stateful servers, plus one cross-server chain (
github issue → jira issue → slack message)
Docker deployment
55 services total (gateway + 54 servers). Each server:
Built from
docker/Dockerfile.serverwithSERVER_IDbuild-argExposes its port (
8001–8173)Inherits
MCP_OFFLINE: "1"andMCP_STATE_DIR: /statefromx-common-envMounts
./state:/statefor persistence (47 of them; gateway and filesystem opt out correctly)Registered in the gateway via
GATEWAY_SERVERSenv
graph LR
subgraph "docker-compose stack"
GW[gateway :8000]
subgraph "network: mcp"
GH[github :8001]
GL[gitlab :8002]
SL[slack :8061]
ST[stripe :8154]
OA[openai :8134]
More[... 44 more]
end
VOL[./state:/state<br/>persistent volume]
end
GW -.mounts.-> GH & GL & SL & ST & OA & More
GH & GL & SL & ST & OA & More -.state.-> VOL
style GW fill:#4a5568,color:#fff
style VOL fill:#38a169,color:#fffCRUD coverage
Per-server capabilities. Create · Read · Update · Delete. · = not implemented.
Server | Category | C R U D | Tools |
| security |
| list_vaults, list_items, get_item |
| productivity |
| create_record, delete_record, list_bases, list_records, list_tables, update_reco |
| devops |
| list_inventories, list_job_templates, list_projects |
| ai-ml |
| messages |
| devops |
| get_application, list_applications, sync_application |
| project-management |
| list_workspaces, list_projects, list_tasks, create_task |
| security |
| list_users, list_clients, list_rules |
| development |
| list_pipelines, list_projects, list_repos |
| development |
| get_repository, list_pullrequests, list_repositories |
| search |
| web_search, news_search |
| devops |
| get_build, list_builds, list_pipelines |
| devops |
| get_pipeline, list_pipelines, list_workflows |
| cloud |
| list_zones, list_dns_records, list_workers |
| development |
| list_repos, list_issues |
| development |
| get_repo_coverage, list_reports, list_repos |
| ai-ml |
| chat, embed, rerank |
| productivity |
| list_spaces, get_page, search_content |
| monitoring |
| query_metric, list_monitors, search_logs |
| cloud |
| list_droplets, list_apps, list_databases |
| communication |
| delete_message, edit_message, list_channels, list_guilds, list_messages, post_me |
| devops |
| get_build, list_builds, list_repos |
| database |
| delete_doc, get_index, index_doc, list_indices, search |
| cloud |
| list_apps, list_machines, get_machine |
| business |
| close_ticket, create_ticket, delete_ticket, get_ticket, list_tickets, update_tic |
| ai-ml |
| generate_content, embed_content, list_models |
| development |
| list_changes, get_change, list_reviewers |
| development |
| close_issue, create_issue, get_repo, list_issues, list_repos |
| devops |
| get_workflow_run, list_workflow_runs, list_workflows |
| devops |
| get_pipeline, list_jobs, list_pipelines |
| development |
| list_projects, get_project, list_issues, create_issue, list_merge_requests |
| monitoring |
| run_report, list_dimensions, list_metrics |
| storage |
| create_file, delete_file, get_file, list_files, search_files |
| monitoring |
| list_dashboards, query_datasource |
| ai-ml |
| chat_completion, list_models |
| cloud |
| get_app, list_apps, list_dynos |
| cloud |
| list_images, list_servers, list_ssh_keys |
| business |
| create_contact, delete_contact, list_companies, list_contacts, list_deals, updat |
| ai-ml |
| list_models, get_model, whoami |
| database |
| query_flux, write_points |
| devops |
| list_jobs, trigger_build, get_build |
| project-management |
| close_issue, create_issue, delete_issue, get_issue, list_projects, search_issues |
| project-management |
| list_issues, create_issue, list_teams, list_projects |
| cloud |
| list_domains, list_instances, list_volumes |
| business |
| add_subscriber, list_audiences, list_campaigns, unsubscribe, update_subscriber |
| ai-ml |
| chat_completion, embed, list_models |
| ai-ml |
| get_function_stats, list_apps |
| database |
| find, insert, update, delete, list_collections |
| database |
| query, list_tables, describe_table |
| database |
| cypher, list_labels, list_relationships |
| cloud |
| list_sites, list_deploys, get_site |
| monitoring |
| nrql, list_alerts |
| productivity |
| create_page, delete_page, get_page, query_database, search, update_page |
| security |
| list_users, list_groups, list_apps |
| ai-ml |
| chat_completion, embed, generate_image |
| ai-ml |
| chat_completion, list_models |
| monitoring |
| list_incidents, create_incident, list_services |
| monitoring |
| query, query_range, list_targets |
| devops |
| get_stack, list_organizations, list_stacks |
| cloud |
| list_projects, list_services |
| database |
| get, set, delete, keys, hget, hset |
| cloud |
| list_services, get_service, list_deploys |
| ai-ml |
| get_prediction, list_models, run_prediction |
| storage |
| delete_object, get_object, list_buckets, list_objects, put_object |
| communication |
| delete_template, list_sent, list_templates, send_email |
| monitoring |
| list_issues, get_issue, list_events |
| communication |
| delete_message, edit_message, get_conversation, list_channels, list_users, post_ |
| security |
| list_projects, list_issues |
| development |
| get_file, search, search_symbols |
| devops |
| list_pipelines, trigger_pipeline |
| database |
| query, list_tables, describe_table |
| business |
| cancel_subscription, create_payment_intent, list_charges, list_customers, list_s |
| database |
| insert_into, list_tables, select_from |
| search |
| search, extract |
| devops |
| get_build, list_builds, list_projects |
| devops |
| get_workspace, list_runs, list_workspaces |
| ai-ml |
| chat_completion, embed, list_models |
| project-management |
| create_card, delete_card, list_boards, list_cards, update_card |
| communication |
| delete_message, list_messages, make_call, send_sms |
| security |
| delete_secret, list_secrets, list_secrets_engines, read_secret, write_secret |
| cloud |
| list_deployments, list_projects, get_deployment |
| productivity |
| create_post, delete_post, list_pages, list_posts, update_post |
Contributing
Contributions welcome! See CONTRIBUTING.md.
125 servers still planned — pick one from
registry/servers/wherestatus: plannedand implement itstools.pyMore stateful mocks — wire
create_*tools tolocal_storefor cross-tool consistencyPer-tool fixtures — most servers only have
default.json; add specific<method>_<path-slug>.jsonfiles for realism
Community
License
MIT © 2026 deepakdalal1221
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Hosted AgentLux MCP server for marketplace, identity, creator, services, and social flows.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceThis MCP server provides a stateful, resettable, verifiable API runtime that gates every tool call, enabling agents to run long workflows against provider-shaped environments without live provider write access. It records decisions, side effects, and outcome evidence for replayable, verifiable benchmark runs.Apache 2.0
- AlicenseBqualityBmaintenanceEnables bounded, deterministic triage verdicts for server health, fleet status, and timeline investigation through a simulated execution-boundary MCP server.35MIT
- AlicenseNot gradedqualityCmaintenanceSpin up deterministic mock MCP servers from JSON fixture files for testing MCP clients and agents.MIT
- AlicenseNot gradedqualityBmaintenanceServes deterministic MCP protocol fixtures generated from tool contracts, enabling testing of MCP clients, gateways, and agent harnesses without live credentials or external services.MIT