Skip to content
ai-supply.store
DiscoverCategoriesLeaderboardsCommunityAgent APIFAQ
Sign inSign up free
catalog / Agentic capability / FastMCP
◇MCP serverAgentic capabilityFree

FastMCP

Apache-2.0 Python framework for building MCP servers fast — decorator-based, zero boilerplate, typed tool definitions.

@ai-supply
Installs44k
⟳ upstream v3.4.4 · updated 17d ago
↗ Source repository
← More Agentic capabilityAgentic capability leaderboard →How we grade security →Source ↗
✓ Grade A · 100/100 · SafeSecurity assessment
✓No compromise signals56capabilities surfaced7of 20 OWASP controls clear
Broad capability surfaceBroad capability surfaceSuspicious network referencesInternal host / private infrastructure reference
scanned 14d ago·osv · gitleaks · opengrep · picklescan + heuristics·full breakdown in the Security tab ↓

FastMCP

FastMCP is a high-level Python framework for building Model Context Protocol (MCP) servers with minimal boilerplate. Inspired by FastAPI's decorator pattern, it lets you expose Python functions as MCP tools, resources, and prompts in seconds — handling all protocol-level serialization, schema generation, and transport setup automatically.

Key features

  • Decorator-based API: @mcp.tool(), @mcp.resource(), @mcp.prompt() — just annotate functions
  • Automatic JSON Schema generation from Python type hints
  • Supports stdio and SSE (HTTP) transports
  • Built-in testing utilities — run MCP servers in-process for unit tests
  • Async-first but sync functions work too
  • Apache-2.0 license

Quick start

pip install fastmcp
from fastmcp import FastMCP

mcp = FastMCP("My AI Tool Server")

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers together."""
    return a + b

@mcp.resource("config://settings")
def get_settings() -> str:
    """Return application settings."""
    return "debug=false, version=1.0"

if __name__ == "__main__":
    mcp.run()  # stdio transport by default
# Run with SSE transport for HTTP access
fastmcp run server.py --transport sse --port 8000

Install via ai-supply

npx ai-supply add fastmcp-python

Curated mirror of the open-source FastMCP (Apache-2.0). Get it from the source.

Rating rank
#1
of 35 in Agentic capability
Install rank
#30
of 35 in Agentic capability
Security score
100/100 · A
safe
Security rank
#1
of 35 in Agentic capability
Installs
44k
cat avg 186k
This listing vs category average
Installs
this
cat avg
Security (of 100)
this
cat avg
Adoption trend
See the Agentic capability leaderboard →
✓ Security: Safe · 100100/100 · grade Ascanned 14d ago
✓ no compromise signals56 risk-surface · 8/20 OWASP controls flagged

Compromise signals — malicious or tampered code (leaked secrets, backdoors, a dropped executable) — reduce the score, and known dependency CVEs carry a bounded penalty (they warrant review but never QUARANTINE — update the dependency to clear). Other dangerous-by-capability traits are risk surface, expected for some capabilities. Every finding is mapped to its OWASP control below.

What this capability can do · high confidence (static)
Tools (39)
custom_nameweather-cliadd_notesave_contactlist_contactscreate_bugsearch_contactsmy_toolteam_directoryquarterly_revenueticket_breakdownsales_dashboardregional_salessales_overviewinteractive_taskpremium_analysisaddcalculatefetch_dataslow_shipgreetsearchfetchsave
⚑ filesystem⚑ shell⚑ network⚑ secrets
egress → api.github.com, stackoverflow.com, gofastmcp.com, agents-md-generator.fastmcp.app, public-code-search.fastmcp.app, pypi.org, www.contributor-covenant.org, www.prefect.io +32

Findings mapped to the OWASP Top 10 for LLM Applications (2025) and the OWASP Machine Learning Security Top 10. Expand any flagged control for the exact findings — compromise reduces the score; expected/risk-surface do not, except a known CVE, which carries a small bounded penalty (high/critical → Review).

OWASP Top 10 for LLM Applications
⚠LLM02Sensitive Information Disclosurehigh
Secrets, credentials or PII shipped inside the artifact.
•Embedded credentials — found: hardcoded credential · PrefectHQ-fastmcp-1d932cc/docs/integrations/google.mdx (CWE-798)expected
•Embedded credentials — found: credentials in URL · PrefectHQ-fastmcp-1d932cc/tests/server/auth/test_redirect_validation.py (CWE-798)expected
•Low-confidence secret match — 1 possible: generic-api-key · PrefectHQ-fastmcp-1d932cc/fastmcp_slim/fastmcp/server/auth/providers/google.py (CWE-798)risk surface
⚠LLM05Improper Output Handlinghigh
Code that pipes model/user output into shell, eval, SQL or paths unsafely.
•Suspicious code patterns — pipe-to-shell install · PrefectHQ-fastmcp-1d932cc/docs/integrations/mcp-json-configuration.mdx (CWE-494)expected
•Suspicious code patterns — dynamic code execution · PrefectHQ-fastmcp-1d932cc/docs/python-sdk/fastmcp-experimental-transforms-code_mode.mdx (CWE-95)expected
•Suspicious code patterns — child_process exec · PrefectHQ-fastmcp-1d932cc/docs/servers/versioning.mdx (CWE-78)expected
•Suspicious code patterns — OS command execution · PrefectHQ-fastmcp-1d932cc/examples/diagnostics/server.py (CWE-78)expected
•Encoded path traversal — percent/utf-8-encoded '../' sequence — bypasses naive path filters · PrefectHQ-fastmcp-1d932cc/fastmcp_slim/fastmcp/server/auth/redirect_validation.py (CWE-22)expected
•Suspicious code patterns — pipe-to-shell install; OS command execution · PrefectHQ-fastmcp-1d932cc/fastmcp_slim/fastmcp/utilities/mcp_server_config/v1/environments/uv.py (CWE-494)expected
•Suspicious code patterns — OS command execution; unsafe yaml.load · PrefectHQ-fastmcp-1d932cc/tests/utilities/json_schema_type/test_real_world_schemas.py (CWE-78)expected
⚠LLM06Excessive Agencyhigh
Over-broad tool/permission surface or unrestricted egress.
•External endpoints declared — 2 distinct host(s) · PrefectHQ-fastmcp-1d932cc/.claude/hooks/session-init.shexpected
•External endpoints declared — 1 distinct host(s) · PrefectHQ-fastmcp-1d932cc/.github/ISSUE_TEMPLATE/bug.ymlexpected
•Broad capability surface — 3 high-impact capability categories referenced — verify least-privilege · PrefectHQ-fastmcp-1d932cc/.github/actions/run-claude/action.yml (CWE-272)risk surface
•External endpoints declared — 11 distinct host(s) · PrefectHQ-fastmcp-1d932cc/README.mdexpected
•External endpoints declared — 5 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/apps/low-level.mdxexpected
•Broad capability surface — 4 high-impact capability categories referenced — verify least-privilege · PrefectHQ-fastmcp-1d932cc/docs/changelog.mdx (CWE-272)risk surface
•External endpoints declared — 3 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/changelog.mdxexpected
•External endpoints declared — 4 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/clients/auth/oauth.mdxexpected
•Egress to a private/loopback host — 127.0.0.1 · PrefectHQ-fastmcp-1d932cc/docs/deployment/http.mdx (CWE-918)expected
•External endpoints declared — 8 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/deployment/http.mdxexpected
•External endpoints declared — 6 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/docs.jsonexpected
•External endpoints declared — 7 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/getting-started/upgrading/from-fastmcp-2.mdxexpected
•External endpoints declared — 12 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/integrations/azure.mdxexpected
•Egress to an anonymous-paste / tunnel / OOB endpoint — abc123.ngrok.io, your-server.ngrok.io · PrefectHQ-fastmcp-1d932cc/docs/integrations/chatgpt.mdx (CWE-200)expected
•External endpoints declared — 17 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/servers/auth/oauth-proxy.mdxexpected
•External endpoints declared — 10 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/v2/integrations/oci.mdxexpected
•External endpoints declared — 14 distinct host(s) · PrefectHQ-fastmcp-1d932cc/docs/v2/servers/auth/oauth-proxy.mdxexpected
•Egress to a private/loopback host — 127.0.0.1, [::1] · PrefectHQ-fastmcp-1d932cc/tests/client/auth/test_oauth_client.py (CWE-918)expected
•External endpoints declared — 15 distinct host(s) · PrefectHQ-fastmcp-1d932cc/tests/server/auth/providers/test_azure.pyexpected
•External endpoints declared — 9 distinct host(s) · PrefectHQ-fastmcp-1d932cc/tests/server/auth/providers/test_scalekit.pyexpected
•Egress to a private/loopback host — 169.254.169.254 · PrefectHQ-fastmcp-1d932cc/tests/utilities/test_json_schema.py (CWE-918)expected
⚠LLM07System Prompt Leakagehigh
Secrets, internal hosts or proprietary logic exposed in shipped prompts.
•Internal host / private infrastructure reference — shipped content references a private IP range or internal-only host · PrefectHQ-fastmcp-1d932cc/docs/clients/transports.mdx (CWE-200)risk surface
•Embedded credentials — found: hardcoded credential · PrefectHQ-fastmcp-1d932cc/docs/integrations/google.mdx (CWE-798)expected
•Embedded credentials — found: credentials in URL · PrefectHQ-fastmcp-1d932cc/tests/server/auth/test_redirect_validation.py (CWE-798)expected
•Low-confidence secret match — 1 possible: generic-api-key · PrefectHQ-fastmcp-1d932cc/fastmcp_slim/fastmcp/server/auth/providers/google.py (CWE-798)risk surface
⚠LLM10Unbounded Consumptionmedium
Unbounded loops/recursion causing DoS or runaway cost.
Enforced at runtime by the gateway (rate limits + spend caps + size caps); static check flags unbounded loops.
•Potentially unbounded loop — an infinite loop (while True / while(1) / for(;;)) may cause runaway consumption · PrefectHQ-fastmcp-1d932cc/docs/servers/sampling.mdx (CWE-835)risk surface
⚠LLM03Supply Chainlow
Vulnerable/compromised dependencies, models or archives in the artifact.
•Dependency manifest — 2 pip requirements declared · PrefectHQ-fastmcp-1d932cc/examples/auth/aws_oauth/requirements.txtrisk surface
§LLM09MisinformationGovernance
Artifacts designed to produce false/deceptive output.
Detectable only by runtime behavioral evaluation; addressed via responsible-use attestation.
✓LLM01Prompt InjectionPassed
✓LLM04Data and Model PoisoningPassed
Backdoors/poisoning in training data or serialized models.
Behavioral poisoning needs model execution; static check covers unsafe serialization + dataset skew only.
✓LLM08Vector and Embedding WeaknessesPassed
PII or plaintext source leakage in embedding/vector exports.
Embedding inversion/poisoning is largely runtime; static check covers PII in vector exports.
OWASP Machine Learning Security Top 10
⚠ML09Output Integrityhigh
Middleware tampering with model outputs in transit.
Gateway enforces TLS + response integrity; static check flags output-rewriting code.
•Suspicious code patterns — pipe-to-shell install · PrefectHQ-fastmcp-1d932cc/docs/integrations/mcp-json-configuration.mdx (CWE-494)expected
•Suspicious code patterns — dynamic code execution · PrefectHQ-fastmcp-1d932cc/docs/python-sdk/fastmcp-experimental-transforms-code_mode.mdx (CWE-95)expected
•Suspicious code patterns — child_process exec · PrefectHQ-fastmcp-1d932cc/docs/servers/versioning.mdx (CWE-78)expected
•Suspicious code patterns — OS command execution · PrefectHQ-fastmcp-1d932cc/examples/diagnostics/server.py (CWE-78)expected
•Encoded path traversal — percent/utf-8-encoded '../' sequence — bypasses naive path filters · PrefectHQ-fastmcp-1d932cc/fastmcp_slim/fastmcp/server/auth/redirect_validation.py (CWE-22)expected
•Suspicious code patterns — pipe-to-shell install; OS command execution · PrefectHQ-fastmcp-1d932cc/fastmcp_slim/fastmcp/utilities/mcp_server_config/v1/environments/uv.py (CWE-494)expected
•Suspicious code patterns — OS command execution; unsafe yaml.load · PrefectHQ-fastmcp-1d932cc/tests/utilities/json_schema_type/test_real_world_schemas.py (CWE-78)expected
⚠ML06AI Supply Chainlow
Compromised PyPI/npm packages, typosquats, unsafe serialized models.
•Dependency manifest — 2 pip requirements declared · PrefectHQ-fastmcp-1d932cc/examples/auth/aws_oauth/requirements.txtrisk surface
§ML01Input Manipulation (Adversarial)Governance
Models vulnerable to adversarial perturbations.
Requires runtime robustness evaluation; addressed via publisher robustness attestation.
§ML03Model InversionGovernance
Training data reconstructable from a model's outputs.
Runtime/evaluation property; addressed via model-card data-provenance + DP attestation.
§ML04Membership InferenceGovernance
Determining whether a record was in the training set.
Runtime/evaluation property; addressed via overfitting disclosure + DP attestation.
§ML08Model SkewingGovernance
Models trained on skewed data producing biased output.
Requires fairness evaluation; addressed via model-card bias/limitations disclosure.
✓ML02Data PoisoningPassed
Poisoned training datasets with triggers or anomalous distributions.
Static check covers trigger phrasing, PII and label skew; full poisoning detection is runtime.
✓ML05Model TheftPassed
Unlicensed re-distribution / license-incompatible derivatives.
Static check verifies license declaration; extraction throttling is runtime.
✓ML07Transfer Learning AttackPassed
Backdoored base models / LoRA adapters propagating to derivatives.
Backdoor detection needs behavioral probing; static check covers unsafe serialization + provenance.
✓ML10Model Poisoning (Weights)Passed
Tampered model weight files; integrity must be verifiable.
Static check enforces safe formats + records a content hash for downstream verification.
Other findings (31) · hygiene / uncategorized
•Unrecognized file type — '.ccignore' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/.ccignorerisk surface
•Unrecognized file type — '.mdc' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/.cursor/rules/core-mcp-objects.mdcrisk surface
•Unrecognized file type — '.gitignore' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/.gitignorerisk surface
•Unrecognized file type — '.python-version' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/.python-versionrisk surface
•Unrecognized file type — '.?' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/LICENSErisk surface
•Unrecognized file type — '.mdx' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/docs/apps/architecture.mdxrisk surface
•Suspicious network references — raw IP URL (9 URLs) · PrefectHQ-fastmcp-1d932cc/docs/clients/auth/oauth.mdxrisk surface
•Suspicious network references — raw IP URL (32 URLs) · PrefectHQ-fastmcp-1d932cc/docs/deployment/http.mdxrisk surface
•Suspicious network references — raw IP URL (10 URLs) · PrefectHQ-fastmcp-1d932cc/docs/integrations/authkit.mdxrisk surface
•Suspicious network references — raw IP URL (47 URLs) · PrefectHQ-fastmcp-1d932cc/docs/servers/auth/oauth-proxy.mdxrisk surface
•Suspicious network references — raw IP URL (18 URLs) · PrefectHQ-fastmcp-1d932cc/docs/servers/auth/remote-oauth.mdxrisk surface
•Suspicious network references — raw IP URL (5 URLs) · PrefectHQ-fastmcp-1d932cc/docs/tutorials/rest-api.mdxrisk surface
•Suspicious network references — raw IP URL (8 URLs) · PrefectHQ-fastmcp-1d932cc/docs/v2/clients/auth/oauth.mdxrisk surface
•Suspicious network references — raw IP URL (29 URLs) · PrefectHQ-fastmcp-1d932cc/docs/v2/deployment/http.mdxrisk surface
•Suspicious network references — raw IP URL (36 URLs) · PrefectHQ-fastmcp-1d932cc/docs/v2/servers/auth/oauth-proxy.mdxrisk surface
•Suspicious network references — raw IP URL (16 URLs) · PrefectHQ-fastmcp-1d932cc/docs/v2/servers/auth/remote-oauth.mdxrisk surface
•Suspicious network references — raw IP URL (2 URLs) · PrefectHQ-fastmcp-1d932cc/examples/auth/authkit/README.mdrisk surface
•Suspicious network references — raw IP URL (1 URLs) · PrefectHQ-fastmcp-1d932cc/examples/auth/authkit/client.pyrisk surface
•Suspicious network references — raw IP URL (4 URLs) · PrefectHQ-fastmcp-1d932cc/examples/auth/keycloak_oauth/server.pyrisk surface
•Suspicious network references — raw IP URL (6 URLs) · PrefectHQ-fastmcp-1d932cc/examples/auth/mounted/README.mdrisk surface
•Suspicious network references — raw IP URL (3 URLs) · PrefectHQ-fastmcp-1d932cc/examples/auth/scalekit_oauth/README.mdrisk surface
•Unrecognized file type — '.envrc' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/examples/tasks/.envrcrisk surface
•Unrecognized file type — '.typed' is not on the allowlist · PrefectHQ-fastmcp-1d932cc/fastmcp_remote/fastmcp_remote/py.typedrisk surface
•Suspicious network references — raw IP URL (12 URLs) · PrefectHQ-fastmcp-1d932cc/fastmcp_slim/fastmcp/server/auth/redirect_validation.pyrisk surface
•Suspicious network references — raw IP URL (27 URLs) · PrefectHQ-fastmcp-1d932cc/tests/client/auth/test_oauth_client.pyrisk surface
•Suspicious network references — raw IP URL (46 URLs) · PrefectHQ-fastmcp-1d932cc/tests/server/auth/providers/test_workos.pyrisk surface
•Suspicious network references — raw IP URL (67 URLs) · PrefectHQ-fastmcp-1d932cc/tests/server/auth/test_cimd.pyrisk surface
•Suspicious network references — raw IP URL (101 URLs) · PrefectHQ-fastmcp-1d932cc/tests/server/auth/test_oauth_proxy_redirect_validation.pyrisk surface
•Suspicious network references — raw IP URL (116 URLs) · PrefectHQ-fastmcp-1d932cc/tests/server/auth/test_redirect_validation.pyrisk surface
•Suspicious network references — raw IP URL (34 URLs) · PrefectHQ-fastmcp-1d932cc/tests/server/http/test_http_auth_middleware.pyrisk surface
•Suspicious network references — raw IP URL (15 URLs) · PrefectHQ-fastmcp-1d932cc/tests/server/providers/proxy/test_proxy_server.pyrisk surface
✔ verified source · pinned PrefectHQ-fastmcp-1d932cc
Check against a policy

The same gate an agent runs before installing (POST /api/v1/trust/fastmcp-python/check). Click a policy:

Consume FastMCP programmatically. Authenticate with an API key or session — see Authorize an agent.

# Agents: CHECK BEFORE YOU INSTALL (no auth) — score, grade, level, capability manifest
curl https://ai-supply.store/api/v1/trust/fastmcp-python

# Gate against your org policy (returns { pass, violations })
curl -X POST https://ai-supply.store/api/v1/trust/fastmcp-python/check \
  -H "Content-Type: application/json" \
  -d '{"minGrade":"B","denyPermissions":["shell"],"denyUnknownEgress":true}'

# CLI
npx ai-supply add fastmcp-python

# REST (install → download)
curl -X POST https://ai-supply.store/api/v1/listings/fastmcp-python/install \
  -H "Authorization: Bearer $AIM_KEY"

# MCP tool
install_listing({ "slug": "fastmcp-python" })
OpenAPI spec →
vlatest
✓ Security: Safe · 1001mo ago

Curated mirror — latest upstream source. See the repository for tagged releases.

Sign in and install this listing to leave a review.

More from @ai-supply

View profile →
◉Agent
MetaGPT
Multi-agent framework that assigns GPT roles (PM, engineer, QA) to solve complex software tasks end-to-end.
↓ 1.0M
⇄Connector
vLLM
High-throughput, memory-efficient LLM inference engine with PagedAttention and continuous batching.
↓ 892k
⇄Connector
Meilisearch
Lightning-fast open-source search engine with typo-tolerance, semantic hybrid search, and sub-50ms response times.
↓ 811k
△Eval
Weights & Biases (wandb)
ML experiment tracking and visualization — log metrics, hyperparameters, models, and media in real time.
↓ 784k
ai-supply.store

Free, security-vetted AI capabilities — skills, MCPs, plugins, agents, datasets and more, each graded and freshness-tracked, and built for humans and agents alike.

api · v3.1status · all green
Contact
support@ai-supply.storesecurity@ai-supply.store
Catalog
  • Discover
  • Categories
  • Leaderboards
  • Benchmarks
  • Security
  • Scan a repo
Community
  • Community
  • FAQ
For agents
  • Quickstart (60s)
  • Authorize an agent
  • Agent API
  • OpenAPI spec
For builders
  • Publish
  • Dashboard
Account
  • Create account
  • Sign in
  • Settings
Legal
  • Terms
  • Publisher Agreement
  • Acceptable Use
  • Privacy