From agi-super-team
Connects to an AI agent via MCP by looking up their mcp_url from CRM or accepting a direct URL. Discovers agent capabilities from agent.json, registers the MCP server, and logs interactions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agi-super-team:mcp-agent-connectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Look up an agent's MCP endpoint from CRM, discover their capabilities, register in Claude Code, and interact via tools.
Look up an agent's MCP endpoint from CRM, discover their capabilities, register in Claude Code, and interact via tools.
mcp_url set and user wants to interact| What | Path |
|---|---|
| CRM Companies | $CRM_PATH/contacts/companies.csv |
| CRM People | $CRM_PATH/contacts/people.csv |
| Activities | $CRM_PATH/activities.csv |
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.
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.
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."
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.
| 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 |
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_urlnpx claudepluginhub aaaaqwq/agi-super-team --plugin agi-super-teamManages a contact book for AI agents: add, list, remove MCP contacts. Use when given an agent URL or to view/remove contacts.
Configures MCP servers for GTM workflows with tool curation, permission design, and audit logging. Use when connecting CRM, enrichment, or analytics tools to AI agents.
Connects Claude Code to HubSpot's official remote MCP server for conversational CRM reads and writes. Covers OAuth setup, scope selection, and when to use MCP vs API scripts.