Server data from the Official MCP Registry
Agent Manifest Protocol: fetch, validate and permission-check API manifests; registry submissions.
About
Agent Manifest Protocol: fetch, validate and permission-check API manifests; registry submissions.
Security Report
manifestlens is a small, well-documented client for the Agent Manifest Protocol that makes only unauthenticated GET requests to well-known manifest locations and a public registry, with no API keys, shell execution, or filesystem writes. Its permissions (network_http to fetch manifests and call the registry, env_vars for two optional config values) match its stated purpose. The only observations are minor: the truncated test file is unreviewed, and the registry base URL is overridable via environment, which is a configuration trust point rather than a vulnerability. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.
8 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-cloudcorprecords-manifestlens": {
"args": [
"-y",
"@reneturcios/manifestlens"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
manifestlens
APIs that want to be usable by agents publish an Agent Manifest: a small JSON document that says what the API is, which endpoints an agent may call, and what constraints apply. manifestlens is a client for that Agent Manifest Protocol. It finds a manifest at an origin's well-known locations, checks a manifest's shape, files an origin with the public AMP registry and follows the submission, and — the part worth doing before every call — answers whether an intended operation is actually permitted by the manifest you are holding.
No API key is involved anywhere. The manifest probes and the registry are both public; the two local tools never leave the machine.
Configuration
AMP_REGISTRY_BASE_URL(optional) — base URL for the registry tools. Defaults tohttps://api.agent-manifest.com.AMP_FETCH_TIMEOUT_MS(optional) — timeout applied to manifest fetches. Defaults to15000.
Tools
fetch_manifest_by_domain— given adomain(a bare host, or a URL whose scheme and path are stripped), it requests/.well-known/agent-manifest.json,/.well-known/amp.json, and/agent-manifest.jsonunderhttps://<host>, in that order, and returns the first manifest that answers, together with the winningmanifest_url, theorigin, and thetried_urlslist. When nothing answers, it fails withno AMP manifest found for <host> (tried 3 URLs).validate_manifest_syntax— checks a manifest given as an object or as a JSON string. It applies the structural subset of the AMP schema described below and either returnsvalid: truewith a success token of the formamp-schema-valid:<spec_version>:<name>, orvalid: falsewith a list of path/message errors. A string that does not parse as JSON is a validation failure, not a tool error.submit_api_to_amp_registry— posts adomain's origin to the registry's submission endpoint (POST /listings/submit) and returns the registry's JSON reply unchanged.check_amp_submission_status— pollsGET /listings/submit/<submission_id>/statusand returns the registry's JSON reply unchanged.check_agent_permissions— takes anactionsuch asPOST /baking/validate-mix, amanifest, and the optional booleansintends_unauthenticatedandpayment_onboarded(both default false). It replies with averdict—compliant,violation,warning, orunknown— plus structuredfindings, and thematched_endpointwhen a declared route matched. Finding codes includeendpoint_not_declared(no declared route matches the action),auth_required(the route needs authentication but the action intends to run unauthenticated),payment_onboarding(the route or manifest declares payment terms and onboarding is not complete), andagent_notes_usage_restriction(the manifest'sagent_notescontain restriction language such as "do not" or "only for"). Declared routes may use{id}-style template segments, which match any single path segment.
Registry failures share two shapes: a non-2xx reply fails
with amp registry error: HTTP <status>, and an
unreachable registry with amp registry unreachable.
Argument validation fails before any request with
domain must be a non-empty string,
manifest must be an object or a JSON string,
submission_id must be a non-empty string,
action must be a non-empty string, or
manifest must be an object, as applicable.
What is a subset, and what is a reconstruction
Three parts of this build are deliberately labelled, here and in the code:
- Validation subset. The full official AMP JSON
Schema is not in the readable record, so validation
implements its documented structural subset: the value
must be a JSON object,
spec_versionmust beagentmanifest-0.2oragentmanifest-0.3,namemust be a non-empty string, and a presentendpointsmust be an array of objects each carrying a stringpath,url, orroute. - Submit input and body. The original tool's submit
input is not shown in its README; manifestlens takes
{domain}and posts{"origin": "https://<host>"}, a reconstruction. - Permission-rule mechanics. The verdicts and
finding codes above are documented; the exact matching
and precedence mechanics that produce them are a
reconstruction. Two finding codes are local extensions:
unparseable_action(the action does not start with an HTTP method) andno_endpoints_declared(the manifest carries no readable endpoints at all) — both come with verdictunknown.
CLI
Each tool is a subcommand taking one JSON argument string:
npx @reneturcios/manifestlens fetch_manifest_by_domain '{"domain":"api.example.com"}'
npx @reneturcios/manifestlens validate_manifest_syntax '{"manifest":{"spec_version":"agentmanifest-0.3","name":"My API"}}'
npx @reneturcios/manifestlens submit_api_to_amp_registry '{"domain":"api.example.com"}'
npx @reneturcios/manifestlens check_amp_submission_status '{"submission_id":"sub_123"}'
npx @reneturcios/manifestlens check_agent_permissions '{"action":"POST /baking/validate-mix","manifest":{"endpoints":[{"method":"POST","path":"/baking/validate-mix"}]}}'
npx @reneturcios/manifestlens --version
Output is the tool's result text. Exit codes: 0 on
success, 1 on a runtime error (including a validation
or upstream failure), 2 on a usage error.
MCP server
npx -y @reneturcios/manifestlens mcp
MCP client config:
{
"mcpServers": {
"manifestlens": {
"command": "npx",
"args": ["-y", "@reneturcios/manifestlens", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/manifestlens
docker run --rm ghcr.io/cloudcorprecords/manifestlens fetch_manifest_by_domain '{"domain":"api.example.com"}'
Development
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev # run the CLI from source
License
MIT — Copyright (c) 2026 Rene Turcios
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
