# MCP Registry

> Let any AI agent discover and use 100+ MCP servers with one URL. Semantic search, full tool schemas, no auth needed.

The Aerostack Registry is an MCP server that lets any AI agent **discover and use 100+ MCP servers** without manual configuration. One URL, semantic search, full tool documentation — your agent finds what it needs on its own.

No API key needed for discovery. Your agent can search and browse the entire catalog freely.

## Connect the Registry

Add this to your MCP client config:

Open **Settings → Developer → MCP Servers → Edit Config** and add:

```json
{
  "mcpServers": {
    "aerostack-registry": {
      "url": "https://mcp.aerostack.dev",
      "transport": "streamable-http"
    }
  }
}
```

Open **Settings → MCP → Add Server** and enter:

- **Name:** `aerostack-registry`
- **Type:** `streamable-http`
- **URL:** `https://mcp.aerostack.dev`

Open **Settings → MCP → Add Server** and enter:

- **Name:** `aerostack-registry`
- **URL:** `https://mcp.aerostack.dev`
- **Transport:** `streamable-http`

```json
{
  "mcpServers": {
    "aerostack-registry": {
      "url": "https://mcp.aerostack.dev",
      "transport": "streamable-http"
    }
  }
}
```

## Available Tools

The registry exposes 3 tools:

### `search_registry`

Semantic search across all MCPs, functions, skills, and agents in the Aerostack marketplace.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | yes | Natural language query, e.g. "send slack message", "process payments" |
| `type` | string | no | Filter: `function`, `mcp`, `skill`, `agent`, or `all` (default) |
| `limit` | number | no | Max results (default 5, max 10) |

**Example:** Your agent asks _"I need to send notifications to a Slack channel"_

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_registry",
    "arguments": {
      "query": "send slack message",
      "type": "mcp",
      "limit": 3
    }
  }
}
```

Returns ranked results with name, description, tool count, and a `call_hint` showing exactly how to invoke each one.

### `get_tool_schema`

Get full parameter documentation for any MCP server or function — input schemas, descriptions, capability manifest.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | yes | Server slug from search results, e.g. `mcp-slack` |

Returns the complete tool list with `inputSchema` for every parameter, plus the AI-generated capability manifest (best for, not suitable for, pairs with).

### `call_function`

Execute any published community function directly through the registry.

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | yes | Function slug, e.g. `text-extract-emails` |
| `input` | object | no | Function input parameters |

`call_function` requires a Bearer token in the Authorization header. The other two tools are open access.

## How It Works

```
Your AI Agent
    │
    ├─ "I need to send a Slack message and create a Stripe invoice"
    │
    ▼
search_registry("send slack message")     → mcp-slack (8 tools)
search_registry("create stripe invoice")  → mcp-stripe (5 tools)
    │
    ▼
get_tool_schema("mcp-slack")    → post_message: channel, text, thread_ts
get_tool_schema("mcp-stripe")   → create_invoice: customer, amount, currency
    │
    ▼
Agent now knows exactly which tools exist and how to call them
```

## From Discovery to Execution

The registry helps agents **discover** tools. To actually **call** them, connect a workspace:

1. **Create a workspace**

   Sign up at [aerostack.dev](https://aerostack.dev) and create a workspace.

1. **Add MCP servers**

   Add the servers your agent discovered (Slack, Stripe, etc.) to your workspace.

1. **Configure secrets**

   Add your API keys (e.g. `SLACK_BOT_TOKEN`, `STRIPE_SECRET_KEY`). They're encrypted and injected at runtime.

1. **Set tool permissions**

   Enable the tools you want. Disable destructive ones like `delete_channel` or `issue_refund`.

1. **Connect your agent**

   ```json
   {
     "mcpServers": {
       "my-workspace": {
         "url": "https://mcp.aerostack.dev/s/YOUR_USERNAME/YOUR_WORKSPACE",
         "headers": {
           "Authorization": "Bearer mwt_YOUR_TOKEN"
         }
       }
     }
   }
   ```

## Security

- **Discovery is open** — `search_registry` and `get_tool_schema` require no auth
- **Execution is gated** — calling tools requires a workspace token
- **Per-tool access control** — enable/disable individual tools per workspace
- **Secrets encrypted** — API keys are AES-GCM encrypted, injected as headers at runtime, never exposed
- **Rate limited** — 25 requests/min per IP for discovery

See [Agent Security](https://aerostack.dev/agent-security) for the full access control breakdown.

## What's in the Catalog

100+ servers across categories:

| Category | Examples |
|----------|---------|
| **Messaging** | Slack, Discord, Telegram, WhatsApp |
| **CRM** | HubSpot, Salesforce, Pipedrive |
| **Payments** | Stripe, Razorpay, PayPal, Shopify |
| **Email** | Gmail, SendGrid, Resend, Mailchimp |
| **Dev Tools** | GitHub, Sentry, Vercel, Cloudflare |
| **Database** | Supabase, Neon, MongoDB, Redis, Elasticsearch |
| **Productivity** | Notion, Airtable, Google Sheets, Google Docs, Excel |
| **Cloud** | AWS, Cloudflare, Railway |
| **Analytics** | Mixpanel, PostHog, Amplitude, Segment |
| **Scheduling** | Calendly, Cal.com, Google Calendar |

Browse the full catalog at [aerostack.dev/mcp](https://aerostack.dev/mcp).
