Public audits
Six-axis grades on Claude skills & MCP servers.
Every report card is produced by the SkillAudit v0.3 engine — six static checks plus an LLM-assisted prompt-injection probe. v0.3 introduces surface tiering: findings in examples/, samples/, benchmarks/, top-level scripts/, and .claude-plugin/install* deduct at lower weight than runtime tool surface, so a chatty benchmarks directory can't tank an otherwise-clean MCP. Real findings from a real scan, not a canned demo. If your repo is in the list and something looks wrong, the contact channel is open.
-
F
21st-dev/magic-mcp
Score 10/100 · Static scan · 6 axes
-
F
AgentDeskAI/browser-tools-mcp
Score 10/100 · Static scan · 6 axes
-
F
Azure/azure-mcp
Score 40/100 · Static scan · 6 axes
-
A
ClickHouse/mcp-clickhouse
Score 90/100 · Static scan · 6 axes
-
A
Couchbase-Ecosystem/mcp-server-couchbase
Score 90/100 · Static scan · 6 axes
-
D
GongRzhe/Gmail-MCP-Server
Score 60/100 · Static scan · 6 axes
-
C
GoogleCloudPlatform/cloud-run-mcp
Score 70/100 · Static scan · 6 axes
-
F
JetBrains/mcp-jetbrains
Score 10/100 · Static scan · 6 axes
-
F
Klavis-AI/klavis
Score 0/100 · Static scan · 6 axes
-
F
PipedreamHQ/mcp
Score 10/100 · Static scan · 6 axes
-
C
XeroAPI/xero-mcp-server
Score 70/100 · Static scan · 6 axes
-
F
adhikasp/mcp-git-ingest
Score 40/100 · Static scan · 6 axes
-
C
algolia/mcp
Score 70/100 · Static scan · 6 axes
-
F
anaisbetts/mcp-installer
Score 40/100 · Static scan · 6 axes
-
F
apify/actors-mcp-server
Score 35/100 · Static scan · 6 axes
-
C
apollographql/apollo-mcp-server
Score 70/100 · Static scan · 6 axes
-
A
appwrite/mcp
Score 90/100 · Static scan · 6 axes
-
F
auth0/auth0-mcp-server
Score 10/100 · Static scan · 6 axes
-
F
awslabs/mcp
Score 0/100 · Static scan · 6 axes
-
F
axiomhq/mcp
Score 0/100 · Static scan · 6 axes
-
A
box-community/mcp-server-box
Score 90/100 · Static scan · 6 axes
-
C
brave/brave-search-mcp-server
Score 70/100 · Static scan · 6 axes
-
C
browserbase/mcp-server-browserbase
Score 70/100 · Static scan · 6 axes
-
C
chroma-core/chroma-mcp
Score 70/100 · Static scan · 6 axes
-
F
circleci-public/mcp-server-circleci
Score 0/100 · Static scan · 6 axes
-
F
cloudflare/mcp-server-cloudflare
Score 0/100 · Static scan · 6 axes
-
F
cloudflare/workers-mcp
Score 40/100 · Static scan · 6 axes
-
C
confluentinc/mcp-confluent
Score 70/100 · Static scan · 6 axes
-
F
dbt-labs/dbt-mcp
Score 40/100 · Static scan · 6 axes
-
C
docker/mcp-gateway
Score 70/100 · Static scan · 6 axes
-
D
e2b-dev/mcp-server
Score 60/100 · Static scan · 6 axes
-
C
elastic/mcp-server-elasticsearch
Score 70/100 · Static scan · 6 axes
-
A
elevenlabs/elevenlabs-mcp
Score 90/100 · Static scan · 6 axes
-
A
exa-labs/exa-mcp-server
Score 90/100 · Static scan · 6 axes
-
C
fastly/mcp
Score 70/100 · Static scan · 6 axes
-
F
getsentry/sentry-mcp
Score 20/100 · Static scan · 6 axes
-
C
github/github-mcp-server
Score 70/100 · Static scan · 6 axes
-
F
glips/figma-context-mcp
Score 20/100 · Static scan · 6 axes
-
C
googleapis/mcp-toolbox
Score 70/100 · Static scan · 6 axes
-
C
grafana/mcp-grafana
Score 70/100 · Static scan · 6 axes
-
F
heroku/heroku-mcp-server
Score 10/100 · Static scan · 6 axes
-
F
honeycombio/honeycomb-mcp
Score 40/100 · Static scan · 6 axes
-
F
hubspot/mcp-server
Score 50/100 · Static scan · 6 axes
-
C
jerhadf/linear-mcp-server
Score 70/100 · Static scan · 6 axes
-
C
jfrog/mcp-jfrog
Score 70/100 · Static scan · 6 axes
-
F
jlowin/fastmcp
Score 25/100 · Static scan · 6 axes
-
C
korotovsky/slack-mcp-server
Score 70/100 · Static scan · 6 axes
-
A
langchain-ai/langchain-mcp-adapters
Score 100/100 · Static scan · 6 axes
-
C
lastmile-ai/mcp-agent
Score 70/100 · Static scan · 6 axes
-
C
makenotion/notion-mcp-server
Score 70/100 · Static scan · 6 axes
-
F
mcp-use/mcp-use
Score 0/100 · Static scan · 6 axes
-
A
meilisearch/meilisearch-mcp
Score 90/100 · Static scan · 6 axes
-
C
mem0ai/mem0-mcp
Score 70/100 · Static scan · 6 axes
-
A
mendableai/firecrawl-mcp-server
Score 90/100 · Static scan · 6 axes
-
A
microsoft/playwright-mcp
Score 90/100 · Static scan · 6 axes
-
F
modelcontextprotocol/create-python-server
Score 40/100 · Static scan · 6 axes
-
F
modelcontextprotocol/create-typescript-server
Score 40/100 · Static scan · 6 axes
-
D
modelcontextprotocol/csharp-sdk
Score 60/100 · Static scan · 6 axes
-
C
modelcontextprotocol/go-sdk
Score 70/100 · Static scan · 6 axes
-
F
modelcontextprotocol/inspector
Score 0/100 · Static scan · 6 axes
-
C
modelcontextprotocol/java-sdk
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/kotlin-sdk
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/python-sdk
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/quickstart-resources
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/registry
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/ruby-sdk
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/rust-sdk
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/servers
Score 70/100 · Static scan · 6 axes
-
C
modelcontextprotocol/swift-sdk
Score 70/100 · Static scan · 6 axes
-
B
modelcontextprotocol/typescript-sdk
Score 80/100 · Static scan · 6 axes
-
F
mongodb-js/mongodb-mcp-server
Score 45/100 · Static scan · 6 axes
-
F
neo4j-contrib/mcp-neo4j
Score 10/100 · Static scan · 6 axes
-
F
neondatabase-labs/mcp-server-neon
Score 10/100 · Static scan · 6 axes
-
A
nickclyde/duckduckgo-mcp-server
Score 90/100 · Static scan · 6 axes
-
F
paypal/agent-toolkit
Score 10/100 · Static scan · 6 axes
-
C
perplexityai/modelcontextprotocol
Score 75/100 · Static scan · 6 axes
-
A
pinecone-io/pinecone-mcp
Score 90/100 · Static scan · 6 axes
-
F
posthog/mcp
Score 10/100 · Static scan · 6 axes
-
C
prisma/mcp
Score 70/100 · Static scan · 6 axes
-
F
punkpeye/fastmcp
Score 35/100 · Static scan · 6 axes
-
D
pydantic/logfire-mcp
Score 60/100 · Static scan · 6 axes
-
C
pydantic/pydantic-ai
Score 70/100 · Static scan · 6 axes
-
A
qdrant/mcp-server-qdrant
Score 90/100 · Static scan · 6 axes
-
C
razorpay/razorpay-mcp-server
Score 70/100 · Static scan · 6 axes
-
A
redis/mcp-redis
Score 90/100 · Static scan · 6 axes
-
F
resend/mcp-send-email
Score 35/100 · Static scan · 6 axes
-
C
runekaagaard/mcp-alchemy
Score 70/100 · Static scan · 6 axes
-
A
snowflake-labs/mcp
Score 90/100 · Static scan · 6 axes
-
F
sooperset/mcp-atlassian
Score 0/100 · Static scan · 6 axes
-
C
stripe/agent-toolkit
Score 70/100 · Static scan · 6 axes
-
D
supabase-community/supabase-mcp
Score 60/100 · Static scan · 6 axes
-
A
tadata-org/fastapi_mcp
Score 90/100 · Static scan · 6 axes
-
C
tavily-ai/tavily-mcp
Score 70/100 · Static scan · 6 axes
-
D
twilio-labs/mcp
Score 60/100 · Static scan · 6 axes
-
F
upstash/context7-mcp
Score 10/100 · Static scan · 6 axes
-
A
vectara/vectara-mcp
Score 100/100 · Static scan · 6 axes
-
C
vercel/mcp-handler
Score 70/100 · Static scan · 6 axes
-
F
wandb/wandb-mcp-server
Score 40/100 · Static scan · 6 axes
-
A
zcaceres/fetch-mcp
Score 90/100 · Static scan · 6 axes
-
F
zenml-io/mcp-zenml
Score 10/100 · Static scan · 6 axes
-
A
zilliztech/mcp-server-milvus
Score 90/100 · Static scan · 6 axes
Methodology
Each report is produced by cloning the repo at its default branch, walking all .js / .ts / .py sources (tests and build artifacts weighted separately), and running six static checks:
- SSRF — HTTP client calls with user-controlled or templated URLs, no allowlist validation
- Command exec —
exec/shell=True/os.systemwith interpolated strings - Credentials — log/error sinks of
process.env, hardcoded tokens by known prefix (AKIA, ghp_, sk-, …) - Permissions — read-only named tools whose handler body contains a write/exec sink
- Maintenance — GitHub API for last-push, releases, archived, open-issue count
- Docs — README + install/usage sections, LICENSE, SECURITY.md, manifest repository field
Plus: LLM-assisted prompt-injection probe
v0.2 added a 7th check — the axis mechanical regex can't reach. We extract every server.tool(…) / @app.tool registration with ~60 lines of handler body, hand the bundle to Claude Haiku 4.5 with a red-team system prompt, and ask for structured findings on untrusted-content flow (web fetches, file reads, ticket bodies) into tool responses. One API call per repo, ~$0.02 per scan, with a bounded input cap. Findings roll up under the Security axis. If no API key is configured the probe gracefully skips and the static grade is still produced — this is why some reports below show a skipped line in the header.
Engine source is in the repo at product-api/audit/. The output for each target above is deterministic given the same commit; score deductions, severity weights, and grade buckets are in product-api/audit/report.js.