{"$schema":"https://modelcontextprotocol.io/schema/manifest.json","name":"Agent Concierge","description":"Evidence-based discovery of autonomous AI agents, MCP tool servers, and x402 endpoints.","version":"1.0.0","homepage":"https://agentconcierge.biz","documentation":"https://agentconcierge.biz/llms.txt","endpoints":[{"type":"streamable-http","url":"https://agentconcierge.biz/mcp","description":"Streamable HTTP with JSON-RPC JSON responses; GET streaming is unavailable."}],"tools":[{"name":"hello","description":"Optional greeting. Greets you, remembers you if you pass your visitor token, and asks what you need. Use when you want this service to remember you across calls. Example arguments: {\"name\": \"travel-planner-agent\"}","inputSchema":{"type":"object","properties":{"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."},"name":{"type":"string","description":"Your agent name"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"chat","description":"Talk in plain English (replies are in English): describe a task, say 'details 1', 'more', 'what's new', 'stop'. Use when a conversation helps: refine a previous list (\"only free ones\"), ask for \"details 2\", or \"more\". Example arguments: {\"message\": \"find a weather forecast API\"}","inputSchema":{"type":"object","properties":{"message":{"type":"string","description":"Plain-English request or follow-up, at most 2000 characters."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["message"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"search","description":"Read-only catalog lookup without saving a conversation. Return up to three relevant agents ranked by latest successful verification, recent activity, and quality grade. Searches A2A first, then MCP; x402 requires an explicit choice. Use when you need up to three ranked candidates for one task without keeping conversation state. Example arguments: {\"task\": \"translate a document to Spanish\"}","inputSchema":{"type":"object","properties":{"task":{"type":"string","description":"The specific capability needed (e.g. 'weather forecast', 'stock price', 'web search')"},"kind":{"type":"string","enum":["mcp","a2a","x402","any"],"description":"Explicit recommendation protocol filter; Any searches A2A then MCP, excluding x402. Defaults to A2A first, then MCP; x402 requires an explicit choice."},"category":{"type":"string","enum":["ai_models","finance_crypto","web_search","dev_tools","public_legal","commerce_marketing","media_generation","productivity","docs_knowledge","social","database_analytics","travel_maps_weather","agent_infra","security","health_science","communication_messaging","network_ops","data_utility","trading_derivatives","education_culture"],"description":"Compatibility field; task relevance is derived from the task text."},"auth":{"type":"string","enum":["none","agent"],"description":"Compatibility field; authentication preference does not affect ranking."},"k":{"type":"integer","description":"Compatibility field; at most three results is returned."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["task"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"find_agents","description":"Read-only catalog lookup without saving a conversation. Return up to three active agents for a task, with verification evidence and calling details. Use when you need candidates plus verification evidence and connection steps for one task. Example arguments: {\"task\": \"extract text from a PDF\", \"kind\": \"mcp\"}","inputSchema":{"type":"object","properties":{"task":{"type":"string","description":"What you need done"},"kind":{"type":"string","enum":["mcp","a2a","x402","any"],"description":"Explicit recommendation protocol filter; Any searches A2A then MCP, excluding x402. Defaults to A2A first, then MCP; x402 requires an explicit choice."},"category":{"type":"string","enum":["ai_models","finance_crypto","web_search","dev_tools","public_legal","commerce_marketing","media_generation","productivity","docs_knowledge","social","database_analytics","travel_maps_weather","agent_infra","security","health_science","communication_messaging","network_ops","data_utility","trading_derivatives","education_culture"],"description":"Compatibility field; task relevance is derived from the task text."},"auth":{"type":"string","enum":["none","agent"],"description":"Compatibility field; authentication preference does not affect ranking."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["task"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"whats_new","description":"Read the last task saved by chat and re-evaluate its evidence without changing it. Use chat to save a task first (valid visitor token required). Use when you saved a task through chat earlier and want its evidence re-checked. Example arguments: {\"visitor_token\": \"vt_...\"}","inputSchema":{"type":"object","properties":{"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["visitor_token"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"subscribe","description":"Legacy contact command. Use /api/task-updates with explicit task scope and authorization; this command cannot grant permission. Use only for legacy contact registration; task updates use /api/task-updates. Example arguments: {\"contact_url\": \"https://example.org/hook\", \"contact_type\": \"webhook\"}","inputSchema":{"type":"object","properties":{"contact_url":{"type":"string","description":"HTTPS webhook or A2A endpoint that receives updates."},"contact_type":{"type":"string","enum":["webhook","a2a"],"description":"Whether contact_url is a webhook or an A2A agent."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["contact_url"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"verify_contact","description":"Confirm your contact with the 6-digit code I sent there. Use after subscribe, with the code delivered to that contact. Example arguments: {\"code\": \"123456\", \"visitor_token\": \"vt_...\"}","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"The six-digit code delivered to your contact."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["code","visitor_token"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"call","description":"Execute an admitted tool through the runtime gateway after checking its current schema and authorization. External effects may occur; uncertain outcomes must not be retried automatically. Use when you have chosen a listing and want this gateway to run one of its admitted tools. Example arguments: {\"resource_id\": 133020, \"tool\": \"get_country_profile\", \"arguments\": {\"country_code\": \"US\"}}","inputSchema":{"type":"object","properties":{"resource_id":{"type":"integer","description":"The resource_id of the agent, MCP server, or API to call"},"tool":{"type":"string","description":"The specific tool name to execute"},"arguments":{"type":"object","description":"Key-value arguments to pass to the tool"},"task":{"type":"string","description":"The task query (optional; used to find immediate alternatives if execution fails)"},"account_id":{"type":"string","description":"Optional credit account ID for paid tools (defaults to your visitor ID)"},"payment":{"type":"object","description":"Optional payment details (tx_hash, signature, headers) for paid endpoints"},"idempotency_key":{"type":"string","minLength":1,"maxLength":128,"description":"Stable caller key for supported ticketed delivery while its execution record is retained. Reuse with identical input; uncertain execution stays paused for review."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["resource_id","tool"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"report","description":"Record caller feedback. On failure, suggest up to three currently verified alternatives and eligible published workflows without executing a retry. Retain the selected protocol and reject known shared failure domains. Use after a call to record the outcome and, on failure, get verified alternatives. Example arguments: {\"resource_id\": 133020, \"ok\": false, \"error_type\": \"timeout\"}","inputSchema":{"type":"object","properties":{"resource_id":{"type":"integer","description":"The resource_id of the agent/tool that was executed"},"ok":{"type":"boolean","description":"Whether the tool call succeeded (true) or failed (false)"},"error":{"type":"string","description":"Optional error message or reason on failure"},"error_type":{"type":"string","enum":["timeout","http_5xx","auth_error","schema_mismatch","rate_limit"],"description":"Optional structured failure category. This report never authorizes a retry."},"protocol":{"type":"string","enum":["auto","any","a2a","mcp","x402"],"description":"Optional explicit recovery scope; otherwise retain the prior selection."},"task":{"type":"string","description":"The task query (optional; defaults to your last searched task)"},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["resource_id","ok"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"credit","description":"Check your own virtual credit balance using a valid visitor token. Top-ups and subscriptions are being prepared; this tool only reads the current balance. Use when you need your own credit balance before a paid call. Example arguments: {\"action\": \"balance\", \"visitor_token\": \"vt_...\"}","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["balance"],"description":"Action: balance to check your credits."},"account_id":{"type":"string","description":"Your own visitor account ID (defaults to the authenticated visitor ID)"},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["action"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"adapt_rest","description":"Universal Adapter: dynamically convert any OpenAPI/Swagger REST API specification into MCP tools and execute them. Use when the API you need has an OpenAPI document but no MCP server. Example arguments: {\"spec_url\": \"https://api.example.org/openapi.json\", \"action\": \"list_tools\"}","inputSchema":{"type":"object","properties":{"spec_url":{"type":"string","description":"URL of the OpenAPI/Swagger JSON specification."},"spec":{"type":"object","description":"Inline OpenAPI JSON specification object."},"action":{"type":"string","enum":["list_tools","call"],"description":"Action: 'list_tools' to discover executable tools, 'call' to invoke an endpoint."},"tool":{"type":"string","description":"Tool name to execute when action='call'."},"arguments":{"type":"object","description":"Arguments for the tool invocation."},"base_url":{"type":"string","description":"Optional override for API base URL."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"search_workflows","description":"Find up to three relevant published workflows by purpose, node capability, or English and common non-English aliases. Discovery does not execute it. Use when a multi-step published workflow may already do your task. Example arguments: {\"task\": \"technology news with supporting research\"}","inputSchema":{"type":"object","properties":{"task":{"type":"string","minLength":1,"maxLength":2000,"description":"The outcome you need, in plain language."},"protocol":{"type":"string","enum":["mcp","a2a","x402","any"],"description":"Optional explicit constraint on workflow node protocols."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["task"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"workflow_details","description":"Read a currently public workflow definition and its recorded execution readiness. Review inputs and use the existing authorized workflow run API to execute. Use after search_workflows to inspect one workflow's steps and readiness. Example arguments: {\"template_id\": 12}","inputSchema":{"type":"object","properties":{"template_id":{"type":"integer","minimum":1,"maximum":2147483647,"description":"The workflow id returned by search_workflows."},"visitor_token":{"type":"string","description":"Your visitor token (vt_…) so I remember you. Omit on first contact."}},"required":["template_id"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}},{"name":"run_workflow","title":"Run a published workflow","description":"Run one published workflow after reviewing it with workflow_details. Pass the definition_hash you reviewed; a changed workflow is refused. Ask for a task (params.task) to get a task id at once and follow it with tasks/get, tasks/result and tasks/cancel. Only published templates run; paid (x402) steps never run without their own explicit choice.","inputSchema":{"type":"object","additionalProperties":false,"required":["template_id","definition_hash"],"properties":{"template_id":{"type":"integer","minimum":1,"description":"Published workflow id from search_workflows."},"definition_hash":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"definition_hash returned by workflow_details for the version you reviewed."},"input":{"type":"object","description":"Declared product input fields, when the workflow has them."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"execution":{"taskSupport":"optional"},"outputSchema":{"type":"object","description":"Structured tool result. Fields vary by operation and outcome; inspect isError and execution status before acting.","properties":{"intent":{"type":"string"},"text":{"type":"string"},"visitor":{"type":["object","null"]},"recommendations":{"type":"array","maxItems":3,"items":{"type":"object"}},"ok":{"type":"boolean"},"status":{"type":"string"},"execution":{"type":"object"}},"required":["text"],"additionalProperties":true}}]}