mcp-agent-connect

$npx mdskill add aAAaqwq/AGI-Super-Team/mcp-agent-connect

Connect to CRM agents via MCP for tool-based interaction.

  • Enables direct communication with external AI agents through registered endpoints.
  • Integrates with CRM databases to locate agent URLs and capability definitions.
  • Executes tool discovery by parsing agent.json files for available functions.
  • Delivers results by executing discovered tools and returning structured outputs.

SKILL.md

.github/skills/mcp-agent-connectView on GitHub ↗
---
name: mcp-agent-connect
description: 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.
allowed-tools: Read, Bash, WebFetch
---
# 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_url` set 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.

```python
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 name
- `description` -- what the agent does
- `capabilities` -- 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:

```python
import re
slug = re.sub(r'[^a-z0-9-]', '', name.lower().replace(' ', '-'))
```

Register in Claude Code:

```bash
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:

```python
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.csv
- `query-leads` -- find CRM contacts, filter by mcp_url

More from aAAaqwq/AGI-Super-Team