DEV Community

Bob Gu
Bob Gu

Posted on

AAI Gateway: One MCP Server to Connect AI Agents to All Your Apps

The Problem: MCP Server Sprawl

If you're using AI agents like Claude Desktop, Cursor, or Windsurf, you've probably encountered this problem:

Every app needs its own MCP server.

Want your agent to use Notion? Add the Notion MCP server.

Need GitHub too? Add another one.

Slack? That's three.

Before you know it, your config looks like this:

{
  "mcpServers": {
    "notion": { "command": "npx", "args": ["@notion/mcp-server"] },
    "github": { "command": "npx", "args": ["@github/mcp-server"] },
    "slack": { "command": "npx", "args": ["@slack/mcp-server"] },
    "linear": { "command": "npx", "args": ["@linear/mcp-server"] }
    // ... and 20 more
  }
}
Enter fullscreen mode Exit fullscreen mode

And there's a worse problem: context explosion.

When an agent calls tools/list, every MCP server returns ALL its tools. 50 apps × 20 tools each = 1000+ tool entries flooding your context window. The agent gets confused, responses slow down, accuracy drops.


The Solution: AAI Gateway

AAI Gateway is a single MCP server that connects AI agents to all web and desktop applications — no code changes required.

{
  "mcpServers": {
    "aai-gateway": {
      "command": "npx",
      "args": ["aai-gateway"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

That's it. One entry. All your apps.

How? Progressive Disclosure

AAI Gateway uses a smart approach called Progressive Disclosure:

tools/list returns only:
├── web:discover     → Discover web apps on-demand
├── app:<app-id>     → One entry per discovered desktop app
└── aai:exec         → Universal executor

= 50 apps + 2 tools = 52 entries ✅
Enter fullscreen mode Exit fullscreen mode

When the agent needs to work with a specific app, it calls web:discover or app:<id> to get the detailed operation guide.

Result: 95% reduction in context usage.


Zero-Code Integration

Apps conforming to the AAI Protocol can be integrated without writing any source code — just provide a descriptor file (aai.json).

For Web Apps

Place aai.json at:

https://your-domain.com/.well-known/aai.json
Enter fullscreen mode Exit fullscreen mode

For Desktop Apps

Place aai.json alongside your app binary.

The gateway auto-discovers and loads capabilities. That's it.


Current Status & Supported Apps

⚠️ This project is under active development. Testing is not yet complete, and you may encounter bugs. Contributions are welcome!

Built-in descriptors available:

App Auth Tools
Notion API Key 11
Feishu / Lark App Credential 11
Yuque (语雀) API Key 7

Coming soon: GitHub, Linear, Slack, Jira, Google Workspace, Airtable, and 30+ more.


Cross-Platform

  • Web Apps: HTTP + OAuth 2.1 PKCE / API Key / App Credential
  • macOS: Apple Events + Keychain
  • Windows: COM + Credential Manager
  • Linux: DBus + libsecret

Get Started

# Add to Claude Code
claude mcp add aai-gateway npx aai-gateway

# Or add to your MCP config
{
  "mcpServers": {
    "aai-gateway": {
      "command": "npx",
      "args": ["aai-gateway"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Links:

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.