MCP Server

MCPBundles Hub

com.mcpbundles/hub
MCP & Agent Infrastructure Public & reachable MCP 2026-07-28

What this MCP does

Manages connected MCP servers, tools, credentials, workspaces, and A2A agents, with discovery, testing, execution history, and code execution.

code_execution
Execute Python code in a sandboxed environment with MCP tool access.
Destructive Open world
Input schema
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'Python code to execute. Use await for tool calls. Use print() for output. Variables do NOT persist between calls - put all related operations in one code block.'}}}
connect_mcp_server
Import, enable, configure, or compose an MCP server for your workspace.
Open world Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'url': {'type': 'string', 'description': "URL of a remote MCP server to import (e.g. 'https://mcp.example.com/sse'). The server is analyzed to detect transport, tools, and auth. Mutually exclusive with base_url."}, 'name': {'type': 'string', 'description': "Display name. Required when creating a new composed server (slug does not exist). Optional when importing — auto-detected from the server's metadata or URL."}, 'slug': {'type': 'string', 'description': "Slug of the MCP server to enable, configure, or compose. Use discover_mcp_servers to discover catalog slugs. If the slug does not exist and you also pass 'name' and 'composed_of_servers', a new composed MCP server is created with that slug as a base."}, 'memory': {'type': 'object', 'description': 'Persisted JSON memory for this server (max 64 KB). Fully replaces any existing memory — pass {} to clear.'}, 'api_key': {'type': 'string', 'description': 'API key or access token. For MCP servers (url): sent as Bearer during analysis and stored as the credential. For REST APIs (base_url): stored as the credential for request auth.'}, 'enabled': {'type': 'boolean', 'description': 'true to activate the server in the workspace (credentials auto-bind if available). false to deactivate. Omit to leave unchanged.'}, 'base_url': {'type': 'string', 'description': "Base URL of a REST API to import as a generic MCP server connection (e.g. 'https://api.example.com/v1'). Creates a server with a single api_request tool. Mutually exclusive with url."}, 'auth_type': {'enum': ['bearer', 'header', 'query_param', 'basic', 'none'], 'type': 'string', 'description': "How auth is injected (REST API mode only). bearer | header | query_param | basic | none. Defaults to 'bearer' when api_key is provided."}, 'description': {'type': 'string', 'description': 'Description for a new composed server (only used at creation).'}, 'desktop_device': {'type': 'string', 'description': "For local-proxy servers: bind the credential by hostname or display name (for example 'Think'). Requires credential_fields."}, 'directory_slug': {'type': 'string', 'description': 'Slug from the MCP directory index (discover_mcp_servers returns directory_slug). Imports discovery-only listings just-in-time into your workspace, or connects an existing managed listing. Mutually exclusive with url, base_url, and slug.'}, 'memory_enabled': {'type': 'boolean', 'description': 'Enable or disable persistent memory tools (bundle_get_memory / bundle_set_memory) for this server.'}, 'read_only_mode': {'type': 'boolean', 'description': "Restrict this server's MCP endpoint to tools annotated as readOnlyHint=true. Writes through to all credential bindings."}, 'credential_name': {'type': 'string', 'description': 'Human-friendly credential name when credential_fields is set.'}, 'auth_header_name': {'type': 'string', 'description': "Custom header or query parameter name (REST API mode only). Required when auth_type is 'header' or 'query_param'."}, 'compose_into_slug': {'type': 'string', 'description': "When importing (url/base_url), compose the imported MCP server INTO this existing composed MCP server's slug. If omitted, a new server is created."}, 'credential_fields': {'type': 'object', 'description': 'Create or update a connection credential in the same call (for example local-proxy use_proxy/port fields). Runs upsert_credential after enabling.'}, 'composed_of_servers': {'type': 'array', 'items': {'type': 'string'}, 'description': "Slugs of the MCP servers this composed MCP server is composed of. The composed server inherits every tool from each listed source server at read time. This REPLACES the current composition — to add a server, pass the existing list plus the new slug; to remove one, pass the existing list minus that slug. Read the current composition with list_connected_mcp_servers (the 'composed_of_servers' field). Only applicable to user-owned composed MCP servers."}, 'credential_bindings': {'type': 'array', 'items': {'type': 'object', 'required': ['connection_slug', 'credential_id'], 'properties': {'credential_id': {'type': 'string'}, 'connection_slug': {'type': 'string'}}}, 'description': 'Bind specific credentials to connections in this server. Each entry maps a connection_slug to a credential_id (UUID). Use list_connected_mcp_servers or discover_mcp_servers to see server connections and list_credentials to find available credential IDs.'}, 'auth_header_template': {'type': 'string', 'description': "Custom header value template (REST API mode only). Use {api_key} as placeholder. Example: 'Token {api_key}'."}, 'selected_installation_id': {'type': 'string', 'description': 'For local-proxy servers: bind the new credential to this Desktop installation UUID. Use list_desktop_devices or desktop_device instead.'}}}
delete_agent
Delete an A2A agent from your workspace.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Agent ID to delete.'}}}
delete_agent_skill
Delete an A2A agent skill.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Skill ID to delete.'}}}
delete_credential
Delete a credential from the workspace.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['credential_id'], 'properties': {'credential_id': {'type': 'string', 'description': 'UUID of the credential to delete.'}}}
delete_private_mcp_server
Delete a private MCP server you created or imported.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Slug of the MCP server.'}}}
describe_tool
Get full schema and metadata for a tool by its function name.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'tool_slug': {'type': 'string', 'description': "Wire slug with hash suffix (e.g. 'uk-property-find-address-34a'). Alias for function_name — use whichever form you have from discover_mcp_servers or mcpbundles tools --server <slug>."}, 'function_name': {'type': 'string', 'description': "Python-safe function name or kebab-case wire slug with hash (e.g. 'uk_property_find_address_34a' or 'uk-property-find-address-34a'). Hub meta-tools use their wire name directly (e.g. 'discover_mcp_servers'). Provide this or tool_slug."}}}
discover_mcp_servers
Browse the full catalog of available MCP servers. Discover servers you can enable in your workspace.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'kind': {'enum': ['managed', 'provider', 'webmcp'], 'type': 'string', 'description': 'Listing kind, matching the public directory facets: managed = MCPBundles-hosted, provider = third-party remote endpoint, webmcp = in-browser surface.'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default: 50 for listing, 5 for search. Max: 100. When more results exist, the response includes `next_cursor`; supply that value as `cursor` on the next request.'}, 'query': {'type': 'string', 'description': "Alias for 'search'. If both are provided, 'search' takes precedence."}, 'cursor': {'type': 'string', 'description': 'Opaque pagination cursor from `next_cursor` on a prior response. Omitted on the first request.'}, 'search': {'type': 'string', 'description': "Search MCP servers by server name, slug, description, category, or matching tool capabilities. Example: 'arxiv', 'crm', 'email', 'search reddit posts'. Alias: 'query'."}, 'mcp_app': {'type': 'boolean', 'description': 'Only listings that ship an MCP App / interactive UI surface.'}, 'category': {'type': 'string', 'description': 'Filter by bundle category. Valid values: ANALYTICS, BACKEND, CLOUD, COLLABORATION, CUSTOMER_RELATION, DEVELOPER_TOOLS, ECOMMERCE, EDUCATION, EMAIL, ENTERPRISE, ENTERTAINMENT, FINANCIAL, FORMS, GOVERNMENT, HOSTING, IOT, LOCATION, MACHINE_LEARNING, MARKETING, MEDIA, MESSAGING, MONITORING, OPEN_DATA, OTHER, PAYMENT, PROJECT_MANAGEMENT, SEARCH, SECURITY, SOCIAL, STORAGE, SUPPORT, TELECOM, TEXT, TIME_MANAGEMENT, TOOLS, TRANSPORT. Common aliases: COMMUNICATION→MESSAGING, COMMUNICATIONS→MESSAGING, CRM→CUSTOMER_RELATION, DEVELOPMENT→DEVELOPER_TOOLS, FINANCE→FINANCIAL, PRODUCTIVITY→PROJECT_MANAGEMENT, SOCIAL_MEDIA→SOCIAL.'}, 'auth_type': {'enum': ['NONE', 'FIELDS', 'OAUTH2'], 'type': 'string', 'description': "Filter managed listings by MCPBundles connection auth type: NONE (no credentials needed), FIELDS (API key), OAUTH2 (OAuth login). For the public browse facet 'No sign in', use no_account_needed instead."}, 'min_tools': {'type': 'integer', 'minimum': 1, 'description': 'Only listings reporting at least this many tools from the probe.'}, 'live_tools': {'type': 'boolean', 'description': 'Only listings with positive evidence the endpoint works: probe listed tools, completed an auth handshake, or is a curated MCPBundles listing.'}, 'no_account_needed': {'type': 'boolean', 'description': "Only listings that need no upstream service sign-in or OAuth (same as the public 'No sign in' facet)."}}}
get_agents
List A2A agents in your workspace.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Agent UUID. When set, returns full detail for that agent (instructions, heartbeat checklist, skills, readiness, memory). Mutually exclusive with list filters (is_active, search, sort, limit, cursor, server_slug).'}, 'sort': {'enum': ['name_asc', 'name_desc', 'last_heartbeat_desc', 'created_desc'], 'type': 'string', 'description': 'When listing: sort order. Default created_desc (newest first).'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'When listing: page size (1–100). Default 20.'}, 'cursor': {'type': 'string', 'description': 'When listing: opaque next_cursor from the previous page.'}, 'search': {'type': 'string', 'description': 'When listing: case-insensitive substring match on display name.'}, 'status': {'enum': ['ACTIVE', 'INACTIVE', 'BLOCKED', 'SUSPENDED'], 'type': 'string', 'description': 'When listing: filter by agent status.'}, 'a2a_slug': {'type': 'string', 'description': 'Published A2A slug. Alternative to id for single-agent detail when you know the slug from webhooks or /agents/{slug}.'}, 'is_active': {'type': 'boolean', 'description': 'When listing: only agents that are active (scheduled runs enabled) or inactive.'}, 'server_slug': {'type': 'string', 'description': 'When listing: only agents bound to this MCP server slug. Ignored when fetching by id or a2a_slug.'}}}
get_workspace_usage
Get current workspace usage and plan limits.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {}}
health_check
Health check that validates the MCP connection is working.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'validate_credentials': {'type': 'boolean', 'default': True, 'description': 'When true (default), bundle endpoints also report whether bundle access and provider credentials are ready. Set to false for a connection-only ping that skips the readiness lookup.'}}}
list_agent_runs
Get run history for an A2A agent.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'id': {'type': 'string', 'description': 'Run ID. If provided, returns full run details including prompt snapshot, tool call breakdown, agent response, and full message history (chat log with intermediate reasoning).'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results to return (1-100). Default: 20.'}, 'cursor': {'type': 'string', 'description': "Pagination cursor from a previous response's next_cursor field."}, 'status': {'enum': ['PENDING', 'RUNNING', 'SUCCESS', 'FAILED', 'CANCELLED'], 'type': 'string', 'description': 'Filter by run status.'}, 'to_date': {'type': 'string', 'description': 'ISO datetime. Only runs started on or before this time.'}, 'agent_id': {'type': 'string', 'description': 'Filter runs to a specific agent. When listing on Hub without this, runs across all agents in the workspace may be returned.'}, 'from_date': {'type': 'string', 'description': 'ISO datetime. Only runs started on or after this time.'}, 'trigger_source': {'enum': ['SCHEDULED', 'MANUAL', 'API'], 'type': 'string', 'description': 'Filter by how the run was triggered.'}}}
list_connected_mcp_servers
List MCP servers in your workspace with their status, tool counts, and configuration.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'slug': {'type': 'string', 'description': "Filter to a specific MCP server by slug. Returns a single server with full details including state/memory. Example: 'moltbook', 'hubspot-crm'."}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 200, 'minimum': 1, 'description': 'Page size. Default: 20 for listing, 5 for search. Max: 200. When more results exist, the response includes `next_cursor`; supply that value as `cursor` on the next request.'}, 'cursor': {'type': 'string', 'description': 'Opaque pagination cursor from `next_cursor` on a prior response. Omitted on the first request.'}, 'search': {'type': 'string', 'description': "Search workspace MCP servers by server name, slug, description, category, or matching tool capabilities. Use this for any user question naming a service or capability, e.g. 'reddit', 'email campaigns', 'read Postgres tables', instead of listing every connected server."}, 'enabled': {'type': 'boolean', 'default': True, 'description': 'When true (default), only ENABLED MCP servers are returned. When false, DISABLED and REVOKED servers are included.'}, 'include_state': {'type': 'boolean', 'default': False, 'description': 'When true, each server row includes the full state/memory JSON blob. Default false to keep responses lean.'}, 'include_inactive': {'type': 'boolean', 'default': True, 'description': 'When true (default), enabled servers that are not yet OPERATIONAL appear (typically awaiting credential setup). When false, only OPERATIONAL servers.'}}}
list_credentials
List credentials configured in the workspace.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'id': {'type': 'string', 'description': 'Credential ID. If provided, returns details including bound MCP servers and masked credential field metadata.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results to return (1-100). Default: 20.'}, 'cursor': {'type': 'string', 'description': "Pagination cursor from a previous response's next_cursor field."}, 'search': {'type': 'string', 'description': 'Search by credential name or connection name (case-insensitive).'}, 'connection_slug': {'type': 'string', 'description': "Filter to credentials for a specific server connection (e.g., 'hubspot', 'stripe')."}, 'verification_status': {'enum': ['VERIFIED', 'UNVERIFIED', 'EXPIRED', 'ERROR', 'PENDING'], 'type': 'string', 'description': 'Filter by verification status.'}}}
list_tool_executions
Get tool execution history for the workspace.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'id': {'type': 'string', 'description': 'Execution ID. If provided, returns full details including input params and output data.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results to return (1-100). Default: 20.'}, 'cursor': {'type': 'string', 'description': "Pagination cursor from a previous response's next_cursor field."}, 'status': {'enum': ['SUCCESS', 'FAILURE', 'TIMEOUT', 'UNAUTHORIZED'], 'type': 'string', 'description': 'Filter by execution status.'}, 'to_date': {'type': 'string', 'description': 'ISO datetime. Only executions on or before this time.'}, 'agent_id': {'type': 'string', 'description': 'Filter to executions triggered by a specific agent.'}, 'from_date': {'type': 'string', 'description': 'ISO datetime. Only executions on or after this time.'}, 'tool_slug': {'type': 'string', 'description': "Filter by tool slug (e.g., 'resend-send-email', 'hubspot-list-contacts')."}, 'server_slug': {'type': 'string', 'description': "Filter by MCP server slug (e.g., 'resend', 'hubspot-mcp')."}, 'heartbeat_run_id': {'type': 'string', 'description': 'Filter to executions from a specific heartbeat run. Returns results in chronological order.'}}}
remove_mcp_server_from_workspace
Remove a shared catalog MCP server from this workspace.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Slug of the MCP server.'}}}
test_connected_mcp_server
Test actual API connectivity for an MCP server by making real API calls.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['server_slug'], 'properties': {'server_slug': {'type': 'string', 'description': "The MCP server slug to validate (e.g., 'affinity', 'hubspot-mcp'). This tests actual API connectivity by making real API calls."}}}
trigger_agent_run
Trigger a new run for an A2A agent.
Open world
Input schema
{'type': 'object', 'required': ['agent_id'], 'properties': {'agent_id': {'type': 'string', 'description': 'Agent ID to trigger a heartbeat run for.'}, 'isolated': {'type': 'boolean', 'default': False, 'description': 'When true, the run executes outside the agent-level heartbeat lease so parallel isolated tasks can overlap when each run has its own trigger_context.'}, 'concurrency_key': {'type': 'string', 'description': "Optional idempotency key for an isolated task, such as 'batch-123:record-456'. A duplicate key for the same agent is rejected by the run dedupe constraint."}, 'trigger_context': {'type': 'object', 'description': "Optional per-run JSON context injected into the agent prompt. Use this for item-specific runs, for example {'record_id': '...'}."}}}
turn_off_mcp_server
Turn off an MCP server but keep saved credentials and settings.
Idempotent
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Slug of the MCP server.'}}}
upsert_agent
Create or update an A2A agent configuration.
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': "Agent ID for updating an existing agent. Provide either 'id' (update) or 'name' (create) — at least one is required."}, 'name': {'type': 'string', 'description': "Display name for the agent. Required when creating a new agent (when 'id' is not provided). Used to generate the unique slug."}, 'memory': {'type': 'object', 'description': "Directly set the agent's persistent memory (JSON object, max 64KB). Requires memory_enabled=true. Pass null to clear."}, 'a2a_slug': {'type': 'string', 'description': 'Optional custom A2A slug (3-120 chars, lowercase alphanumeric and hyphens). When omitted, derived from the display name.'}, 'is_active': {'type': 'boolean', 'description': 'Activate or deactivate the agent. Activation validates that the agent is fully configured.'}, 'mcp_source': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['server', 'hub'], 'type': 'string', 'description': "Source type: 'server' (one MCP server by slug), or 'hub' (superuser only)."}, 'server_slug': {'type': 'string', 'description': "MCP server slug. Required when type is 'server'."}}, 'description': "MCP tool source: {'type': 'server', 'server_slug': '...'} for one MCP server. {'type': 'hub'} is platform-superuser only (smoke / internal agents)."}, 'description': {'type': 'string', 'description': 'What this agent does.'}, 'a2a_visibility': {'enum': ['WORKSPACE', 'PRIVATE', 'PUBLIC', 'OPEN'], 'type': 'string', 'description': 'Who may call this agent over A2A. OPEN allows anonymous browser execution billed to your workspace.'}, 'memory_enabled': {'type': 'boolean', 'description': 'Enable persistent memory across runs. When enabled, the agent can read/write a JSON memory blob via agent_get_memory/agent_set_memory.'}, 'agents_md_content': {'type': 'string', 'description': "Full agents.md instructions content (markdown). Defines the agent's identity, role, and behavior."}, 'heartbeat_md_content': {'type': 'string', 'description': 'Optional heartbeat.md checklist (markdown). Use for scheduled or complex periodic runs; agents.md alone is enough to trigger runs.'}, 'max_tool_calls_per_run': {'type': 'integer', 'description': 'Maximum tool calls allowed per heartbeat run (1-200).'}, 'max_total_tokens_per_run': {'type': 'integer', 'description': 'Maximum tokens allowed per heartbeat run.'}, 'heartbeat_timeout_seconds': {'type': 'integer', 'description': 'Maximum execution time per run in seconds (30-1800). Default: 300.'}, 'heartbeat_interval_minutes': {'type': 'integer', 'description': 'How often the agent runs its heartbeat (5-10080 minutes). Default: 60.'}}}
upsert_agent_skill
Create or update an A2A agent skill.
Input schema
{'type': 'object', 'required': ['skills_md_content'], 'properties': {'id': {'type': 'string', 'description': 'Skill ID. If provided, updates the existing skill. If omitted, creates a new skill.'}, 'agent_id': {'type': 'string', 'description': 'Agent ID to add the skill to. Required when creating a new skill.'}, 'skill_name': {'type': 'string', 'description': 'Unique skill name within the agent. Required when creating.'}, 'description': {'type': 'string', 'description': 'What this skill enables the agent to do.'}, 'skills_md_content': {'type': 'string', 'description': "Full skill content (markdown). Injected into the agent's prompt alongside its definition and heartbeat."}}}
upsert_credential
Create or update a credential for an MCP server connection.
Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'auth_type': {'enum': ['FIELDS', 'NONE', 'OAUTH2'], 'type': 'string', 'default': 'FIELDS', 'description': 'Authentication type. Default: FIELDS. Use OAUTH2 to open the MCPBundles dashboard where account sign-in can be completed in a browser.'}, 'server_slug': {'type': 'string', 'description': 'Target MCP server slug. Required when creating a new credential.'}, 'credential_id': {'type': 'string', 'description': 'Existing credential UUID to update. Omit to create a new credential.'}, 'desktop_device': {'type': 'string', 'description': "For local-proxy connections: bind by hostname or display name instead of selected_installation_id (for example 'Think')."}, 'connection_slug': {'type': 'string', 'description': "Connection slug inside the MCP server. Omit when the server has exactly one credentialed connection. Use list_connected_mcp_servers or discover_mcp_servers to see a server's connections."}, 'credential_name': {'type': 'string', 'description': "Human-friendly name for the credential (e.g. 'Production API Key')."}, 'credential_fields': {'type': 'object', 'description': 'Credential field values as key-value pairs. For FIELDS auth: the connection\'s required fields (e.g. {"api_key": "xkeysib-xxx"}). Required for FIELDS create. For update, only include fields to change (merged with existing).'}, 'selected_installation_id': {'type': 'string', 'description': 'For local-proxy connections (Ollama, Obsidian, Postgres, etc.): bind this credential to a specific MCPBundles Desktop installation UUID. Use list_desktop_devices to list live machines.'}}}
Added
delete_private_mcp_server
Sept. 17, 2026, 12:36 p.m.
Added
remove_mcp_server_from_workspace
Sept. 17, 2026, 12:36 p.m.
Added
turn_off_mcp_server
Sept. 17, 2026, 12:36 p.m.
Added
delete_credential
Sept. 17, 2026, 12:36 p.m.
Added
upsert_credential
Sept. 17, 2026, 12:36 p.m.
Added
list_credentials
Sept. 17, 2026, 12:36 p.m.
Added
list_tool_executions
Sept. 17, 2026, 12:36 p.m.
Added
get_workspace_usage
Sept. 17, 2026, 12:36 p.m.
Added
trigger_agent_run
Sept. 17, 2026, 12:36 p.m.
Added
delete_agent_skill
Sept. 17, 2026, 12:36 p.m.
Added
delete_agent
Sept. 17, 2026, 12:36 p.m.
Added
upsert_agent_skill
Sept. 17, 2026, 12:36 p.m.
Added
upsert_agent
Sept. 17, 2026, 12:36 p.m.
Added
list_agent_runs
Sept. 17, 2026, 12:36 p.m.
Added
get_agents
Sept. 17, 2026, 12:36 p.m.
Added
health_check
Sept. 17, 2026, 12:36 p.m.
Added
test_connected_mcp_server
Sept. 17, 2026, 12:36 p.m.
Added
code_execution
Sept. 17, 2026, 12:36 p.m.
Added
describe_tool
Sept. 17, 2026, 12:36 p.m.
Added
connect_mcp_server
Sept. 17, 2026, 12:36 p.m.
Added
list_connected_mcp_servers
Sept. 17, 2026, 12:36 p.m.
Added
discover_mcp_servers
Sept. 17, 2026, 12:36 p.m.