Mcp agent connect
Connect to an AI agent via MCP using their mcp_url from CRM. Discovers capabilities via agent.json, registers MCP server, and enables tool-based communication.From its SKILL.md
npx -y skills add aAAaqwq/AGI-Super-Team --skill mcp-agent-connectAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.9 KB, 985 tokens by cl100k_base, as published. Nobody here has run it
MCP Agent Connect
Look up an agent's MCP endpoint from CRM, discover their capabilities, register in Claude Code, and interact via tools.
When to use
- "Connect to [contact]'s agent"
- "What can [company]'s agent do?"
- "Book a meeting through [person]'s agent"
- A CRM contact has
mcp_urlset and user wants to interact - User provides a new agent URL to register
Paths
| What | Path |
|---|---|
| CRM Companies | $CRM_PATH/contacts/companies.csv |
| CRM People | $CRM_PATH/contacts/people.csv |
| Activities | $CRM_PATH/activities.csv |
How to execute
Step 1: Find mcp_url from CRM
Parse $ARGUMENTS for the contact name or company name.
import pandas as pd
name = "$1" # contact or company name from arguments
# Search people
people = pd.read_csv('$CRM_PATH/contacts/people.csv')
match = people[
people['first_name'].str.contains(name, case=False, na=False) |
people['last_name'].str.contains(name, case=False, na=False)
]
# Search companies
companies = pd.read_csv('$CRM_PATH/contacts/companies.csv')
comp_match = companies[
companies['name'].str.contains(name, case=False, na=False)
]
# Get mcp_url
if not match.empty and pd.notna(match.iloc[0].get('mcp_url')):
mcp_url = match.iloc[0]['mcp_url']
contact_name = f"{match.iloc[0]['first_name']} {match.iloc[0].get('last_name', '')}"
elif not comp_match.empty and pd.notna(comp_match.iloc[0].get('mcp_url')):
mcp_url = comp_match.iloc[0]['mcp_url']
contact_name = comp_match.iloc[0]['name']
else:
print(f"No mcp_url found for '{name}'. Add it to the contact's CRM record first.")
exit()
If the user provided a URL directly instead of a contact name, skip CRM lookup and use the URL.
Step 2: Discover agent capabilities
Use WebFetch to get the agent discovery endpoint:
URL: {base_url}/.well-known/agent.json
Where base_url = mcp_url with trailing /mcp/ removed.
Parse the response for:
name-- agent namedescription-- what the agent doescapabilities-- dict of capability → {url, tools}
Show the user what this agent can do.
Step 3: Register MCP server
Generate a slug from the agent name:
import re
slug = re.sub(r'[^a-z0-9-]', '', name.lower().replace(' ', '-'))
Register in Claude Code:
claude mcp add <slug> --transport http <mcp_url>
Tell the user: "Agent {name} registered as {slug}. Restart your Claude Code session to use their tools."
Step 4: Log activity
After any MCP interaction, log to activities.csv:
import csv
from datetime import date
activity = {
'activity_id': f'act-mcp-{date.today().isoformat()}',
'person_id': person_id, # if known
'company_id': company_id, # if known
'type': 'message', # or 'meeting' for bookings
'channel': 'mcp',
'direction': 'outbound',
'subject': f'MCP interaction with {contact_name}',
'notes': 'Describe what tools were called and the outcome',
'date': str(date.today()),
'created_by': 'ai',
}
Update the contact's last_contact and last_updated fields.
Troubleshooting
| Problem | Solution |
|---|---|
| Tools not available after add | Restart Claude Code session |
| agent.json not found | Check URL, try {base_url}/.well-known/agent.json in browser |
| Connection timeout | Verify agent server is running and accessible |
| MCP URL returns 404 | Ensure URL ends with / (trailing slash) |
| No mcp_url in CRM | Ask user to provide the URL, then add it to the contact record |
Related skills
agent-contacts-- local agent phone book (add/list/remove without CRM)log-activity-- log any communication to activities.csvquery-leads-- find CRM contacts, filter by mcp_url
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 1 of the 12 instructions most mcp tooling skills give in 985 tokens
Counted across 780 of the 1,136 authors here whose files we hold, read 2026-09-06
- Use Zod for input validationin 34 of 780, across 21 files
- Use stdio for local clientsin 27 of 780, across 10 files
- Restart Claude Code after configurationhere, and in 26 of 780, across 23 files
- Verify MCP server connection before using toolsin 23 of 780, across 17 files
- Define input schemas for every toolin 20 of 780, across 11 files
- Use Streamable HTTP for remote clientsin 18 of 780, across 8 files
- Pin SDK version in package.jsonin 17 of 780, across 6 files
- Keep server logic independent of transportin 16 of 780, across 6 files
- Verify SDK methods against official documentationin 15 of 780, across 5 files
- Format evaluation results as an XML filein 15 of 780, across 12 files
- Test servers using the MCP Inspectorin 15 of 780, across 14 files
- Create ten complex and independent evaluation questionsin 14 of 780, across 11 files
Said here and by no other author read
- Search CRM for contact or company mcp_url
- Use provided URL if no contact name is given
- Fetch agent capabilities from agent.json
- Display agent capabilities to the user
- Generate a slug from the agent name
- Log interaction to activities.csv
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.