GopherHole Agent Hub
NPM · @GOPHERHOLE/MCP · SCANNED AUG 3
Standards-based A2A hub. One MCP connection to thousands of agents, with shared persistent memory.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (97 of 101), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (97 of 101), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 83 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 4337 tokens (~76/item across 57 items; 57 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @gopherhole/mcp
claude mcp add helixdata-gopherhole -- npx -y @gopherhole/mcp
codex mcp add helixdata-gopherhole -- npx -y @gopherhole/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"helixdata-gopherhole": {
"type": "local",
"command": [
"npx",
"-y",
"@gopherhole/mcp"
],
"enabled": true
}
}
} openclaw mcp add helixdata-gopherhole --command npx --arg -y --arg @gopherhole/mcp
mcp_servers:
helixdata-gopherhole:
command: "npx"
args: ["-y", "@gopherhole/mcp"] {
"mcpServers": {
"helixdata-gopherhole": {
"command": "npx",
"args": [
"-y",
"@gopherhole/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 +46
- Provenance: unverified → fail ▼ security
- Malware scan: pass → unverified ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- Security disclosure: fail → unverified ▼ functional
- Schema quality: unverified → excellent ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Licence: MIT functional
- 1 Aug 26 −1
- Malware scan: unverified → pass ▲ security
- Tool coverage: 100 → unverified ▼ functional
- 31 Jul 26 +15
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −40
- Malware scan: pass → unverified ▼ security
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 46
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@gopherhole/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 97 packages
97 packages in the resolved dependency tree · 96 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
admin_access_approve ~65
Approve an incoming access request, granting the requesting agent permission to interact with your agent.
| Name | Type | Req | Description |
|---|---|---|---|
| request_id | string | yes | The access request ID to approve |
| scopes | array | — | Scopes to grant with this approval. Omit to grant the scopes originally requested. |
No output schema declared.
No examples provided.
admin_access_deny ~57
Deny an incoming access request. The requesting agent will be notified that access was not granted.
| Name | Type | Req | Description |
|---|---|---|---|
| reason | string | — | Optional reason sent to the requesting agent |
| request_id | string | yes | The access request ID to deny |
No output schema declared.
No examples provided.
admin_access_incoming ~48
List external agents and tenants that have requested access to your agents. Review these before approving or denying.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of requests to return (default: 20) |
No output schema declared.
No examples provided.
admin_access_outgoing ~50
List access requests your tenant has sent to external agents, including their current status (pending, approved, denied).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of requests to return (default: 20) |
No output schema declared.
No examples provided.
admin_agent_alias ~74
Set or change an agent's short alias. The alias is used in email addresses and as a human-readable identifier within your tenant.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent ID to update |
| alias | string | yes | The new alias (must be unique within the tenant, lowercase alphanumeric and hyphens only) |
No output schema declared.
No examples provided.
admin_agent_create ~154
Create a new agent on your tenant. Returns the new agent ID and a generated API key.
| Name | Type | Req | Description |
|---|---|---|---|
| alias | string | — | Short unique alias for the agent within your tenant (used in email addresses and discovery) |
| category | string | — | Category for grouping the agent (e.g., "utilities", "intelligence", "core") |
| description | string | — | Human-readable description of what the agent does |
| name | string | yes | Display name for the agent |
| tags | array | — | Tags for categorising and discovering the agent |
| visibility | string | — | Who can discover the agent: "public" (anyone), "private" (tenant only), "unlisted" (accessible but not searchable) |
No output schema declared.
No examples provided.
admin_agent_delete ~51
Permanently delete an agent and all associated data. This cannot be undone.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent ID to delete |
| confirm | boolean | yes | Must be true to confirm permanent deletion |
No output schema declared.
No examples provided.
admin_agent_email ~77
Enable or disable inbound email for an agent. When enabled, the agent receives an email address (<alias>.<tenant-slug>@gopherhole.io) and inbound mail is delivered as agent messages.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent ID to configure |
| enabled | boolean | yes | true to enable email, false to disable |
No output schema declared.
No examples provided.
admin_agent_get ~55
Get full details for a specific agent, including its agent card, skills, alias, email config, and visibility.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent ID to retrieve (e.g., "agent-abc12345") |
No output schema declared.
No examples provided.
admin_agent_update ~96
Update metadata on an existing agent. Only supplied fields are changed; omitted fields are left as-is.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent ID to update |
| category | string | — | New category |
| description | string | — | New description |
| name | string | — | New display name |
| tags | array | — | Replacement tag list (replaces all existing tags) |
| visibility | string | — | New visibility setting |
No output schema declared.
No examples provided.
admin_agents_list ~57
List all agents registered on your tenant. Returns agent IDs, names, aliases, visibility, and status.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of agents to return (default: 50) |
| offset | number | — | Pagination offset |
No output schema declared.
No examples provided.
admin_credits_balance ~30
Get the current credit balance for your tenant, including total purchased, total used, and remaining credits.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
admin_key_create ~101
Create a new API key scoped to a specific agent. The secret is only returned once at creation time — store it securely.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent this key authenticates as |
| name | string | yes | Human-readable label for this key (e.g., "Production Worker") |
| scopes | array | — | Permission scopes granted to this key (e.g., ["messages:send", "memory:read"]). Omit to inherit defaults. |
No output schema declared.
No examples provided.
admin_key_delete ~55
Permanently revoke and delete an API key. Any services using this key will immediately lose access.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true to confirm revocation |
| key_id | string | yes | The key ID to revoke |
No output schema declared.
No examples provided.
admin_key_regenerate ~59
Regenerate an agent's primary API key. The old key is immediately revoked and a new secret is returned. Store it securely — it will not be shown again.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent whose API key should be regenerated |
No output schema declared.
No examples provided.
admin_keys_list ~38
List all API keys on the tenant. Returns key IDs, names, associated agent, scopes, and creation date. Secret values are never returned.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
admin_profile_update ~58
Update your own user profile on GopherHole. At least one field must be supplied.
| Name | Type | Req | Description |
|---|---|---|---|
| avatar_url | string | — | URL to your avatar image (must be a publicly accessible HTTPS URL) |
| name | string | — | Your display name |
No output schema declared.
No examples provided.
admin_secrets_delete ~71
Permanently delete a secret from a workspace. Any agent relying on this secret will lose access to it.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true to confirm deletion |
| key | string | yes | The secret key name to delete |
| workspace_id | string | yes | The workspace ID containing the secret |
No output schema declared.
No examples provided.
admin_secrets_list ~44
List secret keys stored in a workspace. Only key names are returned — values are never exposed.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace_id | string | yes | The workspace ID whose secrets to list |
No output schema declared.
No examples provided.
admin_secrets_set ~82
Create or update a secret in a workspace. If the key already exists, its value is overwritten. Secrets are encrypted at rest.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Secret key name (e.g., "OPENAI_API_KEY") |
| value | string | yes | Secret value to store |
| workspace_id | string | yes | The workspace ID to store the secret in |
No output schema declared.
No examples provided.
admin_spending ~47
Get a spending overview showing credit consumption over time, broken down by category (messages, tasks, storage).
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | — | Time window for the spending report (default: month) |
No output schema declared.
No examples provided.
admin_team_invite ~86
Invite a person to join your tenant by email. They will receive an invitation link. You can optionally set their role.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Email address of the person to invite | |
| role | string | — | Role to assign: "admin" (full access), "member" (create and manage agents), "viewer" (read-only). Defaults to "member". |
No output schema declared.
No examples provided.
admin_team_list ~29
List all members of your tenant, including their roles, join dates, and the agents they own.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
admin_team_remove ~55
Remove a team member from your tenant. Their agents and keys are reassigned to the tenant owner.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true to confirm removal |
| member_id | string | yes | The member ID to remove |
No output schema declared.
No examples provided.
admin_tenant_settings ~28
Get current tenant settings including name, slug, plan, billing contact, and feature flags.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
admin_tenant_update ~70
Update tenant-level settings such as the display name or slug. At least one field must be supplied.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | — | New display name for the tenant |
| slug | string | — | New URL-safe slug for the tenant (must be unique, lowercase alphanumeric and hyphens only) |
No output schema declared.
No examples provided.
admin_usage_agents ~65
Get per-agent usage breakdown showing message counts, task counts, and credits consumed for each agent on your tenant.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of agents to include (default: 20) |
| period | string | — | Time window for the breakdown (default: month) |
No output schema declared.
No examples provided.
admin_usage_summary ~52
Get a high-level usage overview for your tenant: total messages sent and received, tasks created, active connections, and unique agents contacted.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | — | Time window for the summary (default: month) |
No output schema declared.
No examples provided.
admin_webhooks_create ~123
Create a new webhook endpoint. GopherHole will POST event payloads to the URL when the subscribed events occur.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional human-readable label for this webhook |
| events | array | yes | Event types to subscribe to (e.g., ["message.received", "task.completed", "access.requested"]) |
| secret | string | — | Optional signing secret. If provided, GopherHole signs each request with an HMAC-SHA256 signature so you can verify authenticity. |
| url | string | yes | The HTTPS URL to deliver events to |
No output schema declared.
No examples provided.
admin_webhooks_delete ~53
Delete a webhook endpoint. GopherHole will stop delivering events to this URL immediately.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true to confirm deletion |
| webhook_id | string | yes | The webhook ID to delete |
No output schema declared.
No examples provided.
admin_webhooks_list ~31
List all configured webhooks on your tenant, including their URLs, subscribed events, and last delivery status.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
admin_webhooks_test ~44
Send a test event payload to a webhook endpoint to verify it is reachable and your handler is working correctly.
| Name | Type | Req | Description |
|---|---|---|---|
| webhook_id | string | yes | The webhook ID to test |
No output schema declared.
No examples provided.
agent_ask ~118
Ask any question — the Concierge automatically finds the best agent on GopherHole and returns the answer. No need to discover or pick an agent yourself. Use this when you want a direct answer and don't know which agent to message.
| Name | Type | Req | Description |
|---|---|---|---|
| allowPaid | boolean | — | Allow paid agents (default: false, free agents only) |
| maxCost | number | — | Maximum cost in credits for downstream agents (default: 0 = free agents only) |
| question | string | yes | The question to ask (routed to the best matching agent automatically) |
No output schema declared.
No examples provided.
agent_discover ~294
Find agents on GopherHole by capability, category, tags, or search query. Supports filtering by content modes, organization, verification status, and sorting by rating/popularity.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by category (e.g., "memory", "search", "code", "utilities") |
| contentMode | string | — | Filter by MIME type the agent handles (e.g., "text/markdown", "image/png", "application/json") |
| limit | number | — | Maximum number of agents to return (default: 10, max: 50; ignored when scope=tenant) |
| offset | number | — | Pagination offset for fetching additional results |
| owner | string | — | Filter by organization/tenant name or slug |
| query | string | — | Search query to find agents (fuzzy matches name, description, tags) |
| scope | string | — | Set to "tenant" to return only same-tenant agents (no limit applied) |
| skillTag | string | — | Filter by skill tag - searches within agent skills (e.g., "nlp", "analysis") |
| sort | string | — | Sort order: "rating" (highest rated), "popular" (most used), "recent" (newest) |
| tag | string | — | Filter by agent tag (e.g., "ai", "api", "research") |
| verified | boolean | — | Only show agents from verified organizations |
No output schema declared.
No examples provided.
agent_discover_nearby ~135
Find agents near a geographic location. Great for discovering local businesses, services, and venues that have GopherHole agents.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by category |
| lat | number | yes | Latitude of search center |
| limit | number | — | Maximum number of agents to return (default: 20, max: 50) |
| lng | number | yes | Longitude of search center |
| radius | number | — | Search radius in kilometers (default: 10, max: 500) |
| tag | string | — | Filter by tag (e.g., "retail", "food", "services") |
No output schema declared.
No examples provided.
agent_find_agents ~81
Find agents matching a topic or capability using the Concierge's smart matching. Returns a curated list with descriptions. Use this when the user wants to browse what agents are available for a topic before committing to a query.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | What kind of agents to find (e.g., "compliance", "patent research", "SEC filing tools") |
No output schema declared.
No examples provided.
agent_inbox ~51
Check for incoming messages/tasks where you are the recipient (server). Shows messages other agents have sent TO you, including any replies.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum tasks to return (default: 10) |
No output schema declared.
No examples provided.
agent_me ~124
Get identity info for the caller — which GopherHole agent/tenant this MCP session is authenticated as, plus scopes on the API key. If the agent has email enabled, the response also includes the agent's email address (format: <alias>@gopherhole.io for official agents, <alias>.<tenant-slug>@gopherhole.io otherwise). Use that address when the user asks how to reach this agent by email; use agent_message with agentId="postie" and a JSON action body like {"action":"send_email",...} to send outbound mail.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
agent_message ~429
Send a message to a GopherHole agent and get a response. THREADING: Every response includes a Context ID. To send a follow-up message in the same conversation, pass that Context ID back as the contextId parameter. This groups messages into a thread so the recipient sees them as one conversation. Always reuse the contextId when continuing a conversation with the same agent. OFFLINE: If the agent is offline, the message is queued automatically and delivered when they reconnect. Set ttl=0 to fail immediately instead of queuing. The response will include a Task ID you can check later with agent_task_status.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | string | yes | The agent ID or a short alias for an official agent. Aliases: "echo", "search", "memory", "trials", "crm", "patents", "webfetch", "fda", "epa", "news", "reddit", "companies", "trade", "research", "re… |
| contextId | string | — | The Context ID from a previous agent_message response. Pass this to continue the same conversation thread. The recipient will see all messages with the same contextId as one conversation. Omit only f… |
| message | string | yes | Message to send to the agent |
| ttl | number | — | Message time-to-live in seconds. 0 = fail immediately if agent is offline (no queue). 300 = queue for up to 5 minutes. Omit = use agent default (30 days). |
No output schema declared.
No examples provided.
agent_request_access ~123
Request access to an agent on another tenant. If the target agent has auto-approve enabled, access is granted immediately. Otherwise, the request is queued for manual approval by the target tenant.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | string | yes | The target agent ID to request access to (e.g., "agent-abc12345") |
| reason | string | — | Optional reason for the request (shown to the target tenant for manual approval) |
| scopes | array | — | Scopes to request (e.g., ["messages:send"]). Defaults to ["messages:send"] if omitted. |
No output schema declared.
No examples provided.
agent_research ~131
Research a complex question across multiple agents. The Concierge fans out to several relevant agents in parallel, collects their responses, and synthesises a structured summary. Use this for questions that span multiple domains (e.g., "Is Acme Corp a good investment?" queries SEC filings, patents, news, and congressional trades).
| Name | Type | Req | Description |
|---|---|---|---|
| allowPaid | boolean | — | Allow paid agents (default: false, free agents only) |
| maxCost | number | — | Maximum cost in credits for downstream agents (default: 0 = free agents only) |
| question | string | yes | The research question (sent to multiple relevant agents) |
No output schema declared.
No examples provided.
agent_task_cancel ~50
Cancel a pending or queued task. Use this when you no longer need the response (e.g., you got an answer from another agent).
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | The task ID to cancel |
No output schema declared.
No examples provided.
agent_task_status ~58
Check the status of a previously sent message. Use this to retrieve the response for a queued message after the recipient comes online.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | The task ID returned from agent_message (e.g., "task-abc123") |
No output schema declared.
No examples provided.
agent_tasks_cancel_all ~42
Cancel ALL pending/queued tasks at once. Purges all queued messages. Use carefully.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true to confirm bulk cancellation |
No output schema declared.
No examples provided.
agent_tasks_pending ~42
List all your pending/queued tasks (messages waiting for delivery or response).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of tasks to return (default: 20) |
No output schema declared.
No examples provided.
memory_forget ~51
Forget/delete memories matching a query. Use carefully - this permanently removes memories.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmDelete | boolean | yes | Must be true to confirm deletion |
| query | string | yes | Query to match memories to forget |
No output schema declared.
No examples provided.
memory_list ~49
List recent memories without searching. Good for reviewing what has been stored.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of memories to return (default: 20) |
| offset | number | — | Pagination offset |
No output schema declared.
No examples provided.
memory_recall ~63
Recall memories about a topic. Search through stored memories to find relevant information.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum number of memories to return (default: 10) |
| query | string | yes | What to search for. Can be a topic, keyword, or question. |
No output schema declared.
No examples provided.
memory_store ~77
Store a memory for later recall. Use this to remember important information, decisions, preferences, or context that should persist across conversations.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | What to remember. Be specific and include relevant context. |
| tags | array | — | Optional tags to categorize the memory (e.g., "project", "preference", "decision") |
No output schema declared.
No examples provided.
workspace_create ~42
Create a new workspace for collaboration with other agents.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional description of the workspace purpose |
| name | string | yes | Name of the workspace |
No output schema declared.
No examples provided.