MCP Services
SkillSearchThis skill gives an AI agent a pre-imported Python module for working with external MCP services. It can search a catalog of supported services, inspect which ones the user has connected, discover each connection's live tool schemas, and call those tools. Adding a service is a catalog entry plus a user login, not a new Python package, so there are no per-service skills to read.
Then ask your AI: use the MCP Services skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Have a Python environment where the mcp module is pre-imported and available to the agent.
What your AI can do with it
- Search the supported-service catalog with mcp.search_plugins and mcp.list_plugins
- Inspect the user's connections with mcp.list_connections
- Discover live tool schemas with mcp.search_tools, mcp.describe_tool, and mcp.list_tools
- Call tools on any connection with mcp.call_tool
- Recommend connecting unconnected services without installing anything
Getting started
- Have a Python environment where the mcp module is pre-imported and available to the agent.
- Use mcp.list_plugins or mcp.search_plugins to find supported services and their connection status.
- Use mcp.list_connections to see which services the user has already connected.
- For a connected service, use mcp.describe_tool or mcp.list_tools to read the live input schema before calling.
- Call the tool with mcp.call_tool using the connection id, tool name, and arguments that match the schema.
What this skill tells your AI
The instructions your AI receives, as published by primeintellect-ai/prime-agent in skills/mcp/SKILL.md and read by Ahel’s review.
Every external service reachable over MCP uses the same pre-imported mcp
module. Adding a service is data (a catalog entry plus a user login), never a
new Python package, and there are no per-service skills to read.
Inventory: what can I use?
# Supported catalog, one bounded page. More pages exist while nextCursor is not None.
page = await mcp.list_plugins(connection_status="not_connected", limit=50)
results = await mcp.search_plugins("notion") # bounded search
page = await mcp.list_plugins() # default: first 50 entries
# The user's actual connections. connectionId is the dispatch id everywhere below.
connections = await mcp.list_connections()
Catalog entries carry connectionStatus (connected, pending,
not_connected, setup_required, disabled, error), connectable, and
when connected the connectionIds you dispatch on. connected means a
verified MCP handshake, not just stored credentials; pending means
credentials exist but verification hasn't run or succeeded yet. Entries may
also carry setupHint (why a service isn't connectable yet), unverified
(imported but not vetted), verifiedAt/toolCount, and connectionIds
(empty when not dispatchable). Entries with setup_required need a developer
app or API key first — say so honestly instead of promising one-click.
Recommend, never connect
If a task would benefit from an unconnected service, name the real catalog
entry (e.g. "Connecting Notion would let me search your workspace directly")
and tell the user to open /plugins (or run /mcp login <service>) to connect.
Recommendations and catalog lookups never install anything, open a browser,
use credentials, or request extra scopes. There is no agent-initiated connect
call in this slice; if the user connects mid-task, the connection activates on
the next call without a reload.
Discover, then call
# Live tool metadata is cached per connection; schemas come from the server.
tools = await mcp.search_tools("search workspace documents", connection_id="notion")
tool = await mcp.describe_tool("notion", "notion-search") # {name, description, inputSchema}
tools = await mcp.list_tools("notion") # full tool list with schemas
result = await mcp.call_tool("notion", "notion-search", {"query": "roadmap"})
- Discover before calling: don't assume tool names or arguments; read the
inputSchemawithdescribe_tooland construct matching arguments. list_toolsreturns the complete inventory or raises — never a silent partial list. Returned schemas are isolated copies; mutate them freely.search_toolswithout aconnection_idsearches at most 8 connections the host reports as connected and reports its scope:searched,unavailable(per-connection failures as fixed, redaction-safe summaries), andtruncated(narrow the query or pick a connection when it is set — the result never claims to be exhaustive).- Prefer narrow catalog searches over paging the whole catalog; don't dump all schemas into context.
- Results are already-parsed Python (a
dictfor structured output, otherwise a string). Nojson.loadsneeded.
Errors and permissions
PermissionError— the tool is excluded by the user'senabledTools/disabledToolspolicy. Don't retry; tell the user.KeyError— the tool or connection doesn't exist. Re-check withlist_tools/list_connections; tools can change across sessions.McpDiscoveryError— the server's tool listing couldn't complete honestly (broken pagination). No partial inventory is published; re-run, and ask the user to reconnect if it persists.RuntimeError— credentials are not available (McpCredentialsUnavailable: ask the user to connect via/pluginsor/mcp login <service>, never via environment variables), a refresh failed, or the host bridge is unavailable.McpToolError— the server flagged the call as an error. Surface the message; don't blindly retry a write that may have already happened.
Credentials never appear in inventory results, tool schemas, or errors.
Signals
- GitHub stars
- 22k
- Forks
- 2k
- Last commit
- Oct 2026
Questions
- How do I connect a new service?
- The skill does not connect services. It recommends the real catalog entry and tells the user to open /plugins or run /mcp login <service>. If the user connects mid-task, the connection activates on the next call without a reload.
- What does connectionStatus mean?
- connected means a verified MCP handshake, not just stored credentials. pending means credentials exist but verification has not run or succeeded. setup_required needs a developer app or API key first. Other values include not_connected, disabled, and error.
Advanced
- Item type
- skill
- Key
mcp-primeintellect-ai- Source
- github.com/primeintellect-ai/prime-agent
github.com/primeintellect-ai/prime-agent
Related picks
Skill · sickn33
The pick for Pythonpython-design-patterns
Skill · wshobson
The pick for Pythonnotion-meeting-intelligence
Skill · openai
The pick for Notionnotion-spec-to-implementation
Skill · davila7
The pick for Notionslack-gif-creator
Skill · anthropics
The pick for Slackslack-automation
Skill · davila7
The pick for Slack