Skip to content

Agent Nexus

by agentnexus.app · remote · no sign-in to list tools · v1.1.1 · published by app.agentnexus

Agent-native registry to discover APIs, MCP servers and CLIs, with live health checks.

Changes · 2

6 tools: 2 change things and 4 only read.

Scanned Oct 21, 2026

8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http agent-nexus https://agentnexus.app/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn6 info
  • The server marks "discover_capabilities" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "call": a word for a change.

    What this check looks for
  • The input schema at properties.slug.description contains "any other tool", wording about other tools or servers.

    Matched text

    inputSchema.properties.slug.description: "...ars, as returned in the 'slug' field of any other tool, e.g. 'stripe-api' or 'github-mcp'. Cas..."

    What this check looks for
  • The input schema at properties.auth_mode.description mentions "credentials".

    Matched text

    inputSchema.properties.auth_mode.description: "...gue; auth_params carries the individual credentials."

    What this check looks for
  • The input schema at properties.auth_params.description mentions "credentials".

    Matched text

    inputSchema.properties.auth_params.description: "Up to 10 individual credentials the caller must supply, each {name, loc..."

    What this check looks for
  • The input schema at properties.auth_params.items.properties.name.description mentions "credential".

    Matched text

    inputSchema.properties.auth_params.items.properties.name.description: "Exact credential name as sent, e.g. 'Authorization' or '..."

    What this check looks for
  • The input schema at properties.auth_params.items.properties.location.description mentions "credential".

    Matched text

    inputSchema.properties.auth_params.items.properties.location.description: "Where the credential goes: 'header', 'query', 'env' (CLI/MCP..."

    What this check looks for
Show 2 more findings
  • The input schema at properties.auth_params.items.properties.required.description mentions "credential".

    Matched text

    inputSchema.properties.auth_params.items.properties.required.description: "...y when the call also works without this credential. Defaults to true."

    What this check looks for
  • The input schema at properties.invocation_example.description mentions "credential".

    Matched text

    inputSchema.properties.invocation_example.description: "...e, max 1000 chars. Never include a real credential — use a placeholder such as $API_KEY. T..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

6 tools

Changes things 2Claude Code: ask
  • discover_capabilitiesCall this first whenever a task needs an external service (email, payments, search, storage, LLMs, data...) or when a service you use is failing.1 finding

    Why it is in this group

    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "discover_capabilities" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "call": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Call this first whenever a task needs an external service (email, payments, search, storage, LLMs, data...) or when a service you use is failing. Maps a plain-language goal (e.g. 'send a transactional email') to callable APIs, MCP servers or CLIs. Returns matches[] with slug, endpoint, auth, formats, rate limit, pricing and a 0-100 reliability score; if nothing fits, coverage='none' and matches[] lists reliable starting points. Rate limits: 100 calls/day anonymous, 1,000/day with a free key, 50,000/day on Agent Pro. For a known keyword or slug, use search_registry.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Find a working API, MCP server or CLI for a task
    • destructiveHint: false
  • submit_entryRegister a new interface (HTTP API, MCP server or CLI) in the Agent Nexus catalogue.6 findings

    Why it is in this group

    • The name "submit_entry" says "submit": a word for a change.

    Findings

    • Info

      The input schema at properties.auth_mode.description mentions "credentials".

      Matched text

      inputSchema.properties.auth_mode.description: "...gue; auth_params carries the individual credentials."

      What this check looks for
    • Info

      The input schema at properties.auth_params.description mentions "credentials".

      Matched text

      inputSchema.properties.auth_params.description: "Up to 10 individual credentials the caller must supply, each {name, loc..."

      What this check looks for
    • Info

      The input schema at properties.auth_params.items.properties.name.description mentions "credential".

      Matched text

      inputSchema.properties.auth_params.items.properties.name.description: "Exact credential name as sent, e.g. 'Authorization' or '..."

      What this check looks for
    • Info

      The input schema at properties.auth_params.items.properties.location.description mentions "credential".

      Matched text

      inputSchema.properties.auth_params.items.properties.location.description: "Where the credential goes: 'header', 'query', 'env' (CLI/MCP..."

      What this check looks for
    • Info

      The input schema at properties.auth_params.items.properties.required.description mentions "credential".

      Matched text

      inputSchema.properties.auth_params.items.properties.required.description: "...y when the call also works without this credential. Defaults to true."

      What this check looks for
    • Info

      The input schema at properties.invocation_example.description mentions "credential".

      Matched text

      inputSchema.properties.invocation_example.description: "...e, max 1000 chars. Never include a real credential — use a placeholder such as $API_KEY. T..."

      What this check looks for
    Description, as the server wrote it
    Register a new interface (HTTP API, MCP server or CLI) in the Agent Nexus catalogue. Callers authenticate either as a signed-in member or with a free agent key (POST https://agentnexus.app/api/public/keys), which allows one submission per key and per source address per 24 hours. This is a write: it creates a pending row, it does NOT publish anything — every submission is reviewed by a human before it becomes discoverable, so nothing you send here is visible to other agents until it is approved. Nothing is overwritten or deleted, and re-submitting the same name creates a second pending row rather than updating the first. Five fields are required (name, category, summary, endpoint, auth_mode); everything else is optional but directly decides whether the entry is approved and how well it ranks: capabilities[] is what other agents are matched against, so list concrete verbs, and docs_url plus invocation_example are what a reviewer checks first. Rate limited to 20 submissions per hour for members and 1 per 24 hours per agent key and per source address, and the endpoint must answer a live health probe to keep a reliability score. Returns {slug, status}; poll GET https://agentnexus.app/api/public/submission?slug=<slug> for the decision, or pass contact_email to be emailed instead. Use list_my_submissions to review what you already submitted; use search_registry first to check the interface is not already listed.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
    • title: Submit an interface to the registry
Only reads 4Claude Code: allow
  • get_entryBefore calling a known service, check it is live right now and get its exact contract.1 finding

    Why it is in this group

    • The name "get_entry" says "get": a word for reading.

    Findings

    • Warn

      The input schema at properties.slug.description contains "any other tool", wording about other tools or servers.

      Matched text

      inputSchema.properties.slug.description: "...ars, as returned in the 'slug' field of any other tool, e.g. 'stripe-api' or 'github-mcp'. Cas..."

      What this check looks for
    Description, as the server wrote it
    Before calling a known service, check it is live right now and get its exact contract. Fetches the full record of ONE approved registry entry whose exact slug you already have, e.g. from a previous discover_capabilities, search_registry or list_entries result. Read-only and idempotent: the same slug always returns the same entry until its health probe changes. Returns {entry} with endpoint, auth mode and parameters, input/output formats, rate limit, pricing, capabilities, docs URL, invocation example and the latest 6-hourly health probe — the detail level the listing tools omit. This is the single-record lookup: it takes no filters and no paging. If you do not have a slug, do not guess one — use search_registry for a keyword or discover_capabilities for a plain-language need; to walk the whole catalogue use list_entries. An unknown or unapproved slug is an error, not an empty result.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Check a service is up and how to call it
    • destructiveHint: false
  • list_categoriesReturn the fixed taxonomy of Agent Nexus: the three interface layers it indexes ('api', 'mcp', 'cli'), each with a label, a one-line definition and its live count of approved entri…No findings

    Why it is in this group

    • The name "list_categories" says "list": a word for reading.
    Description, as the server wrote it
    Return the fixed taxonomy of Agent Nexus: the three interface layers it indexes ('api', 'mcp', 'cli'), each with a label, a one-line definition and its live count of approved entries. Read-only, idempotent and parameterless — call it once to learn the exact values accepted by the 'category' argument of search_registry, list_entries and discover_capabilities, and to size the catalogue before paging. It never returns entries themselves: use list_entries to enumerate a layer, search_registry for a keyword, discover_capabilities for a plain-language need.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: List interface categories
    • destructiveHint: false
  • list_entriesEnumerate the whole approved catalogue in deterministic slug order, page by page — use this when you want everything (mirroring, auditing, building your own index), not when you ar…No findings

    Why it is in this group

    • The name "list_entries" says "list": a word for reading.
    Description, as the server wrote it
    Enumerate the whole approved catalogue in deterministic slug order, page by page — use this when you want everything (mirroring, auditing, building your own index), not when you are looking for something specific. Read-only and idempotent. Returns {total, page, per_page, pages, results[]}: read 'pages' from the first response and increment 'page' until you reach it; 'total' and 'pages' reflect the 'category' filter when one is set, so keep the filter identical across pages or the paging shifts. Entries come back in summary form; call get_entry with a slug for the full record. For a keyword use search_registry, for a plain-language need use discover_capabilities, and for the accepted category values call list_categories. Bulk mirror alternative: GET https://agentnexus.app/api/public/entries.ndjson streams the full catalogue in one request.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: List all registry entries (paginated)
    • destructiveHint: false
  • search_registryKeyword lookup in the Agent Nexus registry when you already know what to look for: a product name, vendor, slug or endpoint fragment, optionally narrowed to one category.No findings

    Why it is in this group

    • The name "search_registry" says "search": a word for reading.
    Description, as the server wrote it
    Keyword lookup in the Agent Nexus registry when you already know what to look for: a product name, vendor, slug or endpoint fragment, optionally narrowed to one category. Matches literal text only — it does not interpret a goal. To go from a plain-language need to a callable interface, use discover_capabilities instead; to walk the whole catalogue in order use list_entries, and for the full record of one known slug use get_entry. Read-only and side-effect free. Returns {count, results[]} where each result is a summary entry record (slug, name, category, summary, endpoint, trust fields). Results are ordered alphabetically by name, not by relevance; there is no pagination beyond the limit parameter — raise limit (max 50) or narrow the query to see more. An empty results[] when nothing matches is a valid answer, not an error.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
    • title: Look up a service by name
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http agent-nexus https://agentnexus.app/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__agent-nexus__search_registry",
      "mcp__agent-nexus__get_entry",
      "mcp__agent-nexus__list_categories",
      "mcp__agent-nexus__list_entries"
    ],
    "ask": [
      "mcp__agent-nexus__discover_capabilities",
      "mcp__agent-nexus__submit_entry"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agent-nexus. Review it before you use it.