aai-gateway 0.3.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +201 -307
- package/dist/cli.js +386 -74
- package/dist/cli.js.map +1 -1
- package/dist/index.js +465 -15
- package/dist/index.js.map +1 -1
- package/dist/{server-BYtx5KIZ.js → server-C2Hyt-lR.js} +7376 -2428
- package/dist/server-C2Hyt-lR.js.map +1 -0
- package/package.json +1 -1
- package/dist/server-BYtx5KIZ.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,407 +1,301 @@
|
|
|
1
1
|
# AAI Gateway
|
|
2
2
|
|
|
3
|
-
## One MCP.
|
|
3
|
+
## One MCP. Many Apps. Less Context.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
> Apps conforming to the **[AAI Protocol](https://github.com/gybob/aai-protocol)** can be **seamlessly integrated** without developing any source code—just provide a descriptor.
|
|
5
|
+
AAI Gateway turns many apps, agents, skills, and MCP servers into one MCP server.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
[](https://github.com/gybob/aai-gateway/blob/main/LICENSE)
|
|
7
|
+
You connect your AI tool once. AAI Gateway handles discovery, import, routing, and exposure control behind that single entrypoint.
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
Why this matters:
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
- One MCP connection instead of one MCP per app
|
|
12
|
+
- Smaller context because tools are exposed at the app level first, not dumped all at once
|
|
13
|
+
- A cleaner path to mix MCP servers, skills, ACP agents, and CLI-backed apps
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
| ------------------------------------------- | ------------------------------------------------- |
|
|
17
|
-
| One MCP Server per App | **One MCP for all applications** |
|
|
18
|
-
| Requires modifying app code | **Zero-code integration, just a descriptor** |
|
|
19
|
-
| Loads all tools at once (context explosion) | **Progressive disclosure, load on-demand** |
|
|
20
|
-
| Platform-specific only | **Cross-platform: Web + macOS + Windows + Linux** |
|
|
15
|
+
AAI Gateway is for one goal: make tool ecosystems feel smaller, sharper, and easier for agents to use.
|
|
21
16
|
|
|
22
|
-
|
|
17
|
+
## How To Use
|
|
23
18
|
|
|
24
|
-
|
|
19
|
+
### 1. Connect Your AI Tool To AAI Gateway
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
You do not need to preinstall `aai-gateway`.
|
|
27
22
|
|
|
23
|
+
Use the same style users already know from mainstream MCP setups: launch it through `npx`.
|
|
24
|
+
|
|
25
|
+
### Claude Code
|
|
26
|
+
|
|
27
|
+
Official docs: <https://code.claude.com/docs/en/mcp>
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
claude mcp add --transport stdio aai-gateway -- npx -y aai-gateway
|
|
28
31
|
```
|
|
29
|
-
50 apps × 20 tools per app = 1000+ tool entries
|
|
30
|
-
→ Context window explosion
|
|
31
|
-
→ Agent performance degradation
|
|
32
|
-
→ Reduced response accuracy
|
|
33
|
-
```
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
### Codex
|
|
34
|
+
|
|
35
|
+
Official docs: <https://developers.openai.com/learn/docs-mcp>
|
|
36
36
|
|
|
37
|
+
```bash
|
|
38
|
+
codex mcp add aai-gateway -- npx -y aai-gateway
|
|
37
39
|
```
|
|
38
|
-
tools/list returns only lightweight entries:
|
|
39
|
-
├── web:discover → Discover web apps and get their capabilities
|
|
40
|
-
├── app:<desktop-app-id> → Discovered desktop apps (one entry per app)
|
|
41
|
-
└── aai:exec → Universal executor for all operations
|
|
42
40
|
|
|
43
|
-
|
|
41
|
+
### OpenCode
|
|
42
|
+
|
|
43
|
+
Official docs: <https://opencode.ai/docs/config> and <https://opencode.ai/docs/mcp-servers/>
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
Add this to `~/.config/opencode/opencode.json` or your project `opencode.json`:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"$schema": "https://opencode.ai/config.json",
|
|
50
|
+
"mcp": {
|
|
51
|
+
"aai-gateway": {
|
|
52
|
+
"type": "local",
|
|
53
|
+
"command": ["npx", "-y", "aai-gateway"],
|
|
54
|
+
"enabled": true
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
46
58
|
```
|
|
47
59
|
|
|
48
|
-
|
|
60
|
+
### What You Get After Connecting
|
|
49
61
|
|
|
50
|
-
|
|
62
|
+
Once connected, your AI tool can use AAI Gateway tools such as:
|
|
51
63
|
|
|
52
|
-
|
|
64
|
+
- `remote:discover`
|
|
65
|
+
- `aai:exec`
|
|
66
|
+
- `mcp:import`
|
|
67
|
+
- `skill:import`
|
|
68
|
+
- `mcp:refresh`
|
|
69
|
+
- `import:config`
|
|
53
70
|
|
|
54
|
-
###
|
|
71
|
+
### 2. Import An MCP Server
|
|
55
72
|
|
|
56
|
-
|
|
57
|
-
1. User: "Search my Notion workspace"
|
|
58
|
-
2. Agent recognizes "Notion" as a web application
|
|
59
|
-
→ Calls web:discover to fetch Notion's capabilities
|
|
60
|
-
3. tools/call("web:discover", {url: "notion.com"})
|
|
61
|
-
→ Returns operation guide: listDatabases(), queryDatabase(id), search(query)
|
|
62
|
-
4. tools/call("aai:exec", {app: "notion.com", tool: "search", args: {...}})
|
|
63
|
-
→ Executes and returns result
|
|
64
|
-
```
|
|
73
|
+
The main workflow is: copy a mainstream MCP config snippet into your AI tool and ask it to import that server through AAI Gateway.
|
|
65
74
|
|
|
66
|
-
|
|
75
|
+
The AI tool should:
|
|
67
76
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
2. User: "Show my work tasks"
|
|
72
|
-
→ Agent finds matching app:guanchen.worklens
|
|
73
|
-
3. tools/call("app:guanchen.worklens")
|
|
74
|
-
→ Returns operation guide: listTasks(), getTaskDetail(id), createTask()
|
|
75
|
-
4. tools/call("aai:exec", {app: "guanchen.worklens", tool: "listTasks", args: {}})
|
|
76
|
-
→ Executes and returns result
|
|
77
|
-
```
|
|
77
|
+
1. read the MCP config you pasted
|
|
78
|
+
2. ask you to choose an exposure mode
|
|
79
|
+
3. call `mcp:import`
|
|
78
80
|
|
|
79
|
-
|
|
81
|
+
AAI Gateway keeps the import parameters close to normal MCP config shapes:
|
|
80
82
|
|
|
81
|
-
|
|
83
|
+
- stdio MCP: `command`, `args`, `env`, `cwd`
|
|
84
|
+
- remote MCP: `url`, optional `transport`, optional `headers`
|
|
82
85
|
|
|
83
|
-
|
|
86
|
+
Before import, the AI tool should ask you to choose:
|
|
84
87
|
|
|
85
|
-
|
|
88
|
+
- `summary`: easier automatic triggering
|
|
89
|
+
- `keywords`: leaves room for more tools, but usually needs more explicit keyword mentions
|
|
86
90
|
|
|
87
|
-
|
|
88
|
-
- **Isolated Consent**: Consent decisions are stored **per caller**, meaning authorization granted to Claude Desktop is NOT automatically granted to Cursor
|
|
89
|
-
- **Clear Dialogs**: Consent dialogs clearly show which client is requesting access: "Claude Desktop wants to use: sendEmail"
|
|
90
|
-
- **Re-authorization Required**: Different MCP clients must obtain their own authorization for the same tools
|
|
91
|
+
Example: import a normal stdio MCP config
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"command": "npx",
|
|
96
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
|
|
97
|
+
}
|
|
98
|
+
```
|
|
93
99
|
|
|
100
|
+
Example: import a normal remote Streamable HTTP MCP config
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"url": "https://example.com/mcp"
|
|
105
|
+
}
|
|
94
106
|
```
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
107
|
+
|
|
108
|
+
Example: import a normal remote SSE MCP config
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"url": "https://example.com/sse",
|
|
113
|
+
"transport": "sse"
|
|
114
|
+
}
|
|
101
115
|
```
|
|
102
116
|
|
|
103
|
-
|
|
117
|
+
After import, AAI Gateway returns:
|
|
104
118
|
|
|
105
|
-
|
|
106
|
-
|
|
119
|
+
- the generated app id
|
|
120
|
+
- the generated `keywords`
|
|
121
|
+
- the generated `summary`
|
|
122
|
+
- the guide tool name: `app:<id>`
|
|
107
123
|
|
|
108
|
-
|
|
124
|
+
Important:
|
|
109
125
|
|
|
110
|
-
|
|
126
|
+
- Restart your AI tool before using the newly imported tool.
|
|
127
|
+
- After restart, the imported app will appear as `app:<id>`.
|
|
128
|
+
- Use `aai:exec` to actually run the imported app’s operations.
|
|
111
129
|
|
|
112
|
-
|
|
113
|
-
| ----------------- | -------------- | ----- | --------------------------------------------------- |
|
|
114
|
-
| **Notion** | API Key | 11 | Notes, docs, knowledge base, project management |
|
|
115
|
-
| **Yuque (语雀)** | API Key | 7 | Alibaba Cloud knowledge management platform |
|
|
116
|
-
| **Feishu / Lark** | App Credential | 11 | Enterprise collaboration (docs, wiki, IM, calendar) |
|
|
117
|
-
> 💡 Want to add your app? See [How to Integrate](#how-to-integrate) | [Upcoming Apps](#upcoming-apps)
|
|
130
|
+
### 3. Import A Skill
|
|
118
131
|
|
|
119
|
-
|
|
132
|
+
Skills are imported through the AI tool as well.
|
|
120
133
|
|
|
121
|
-
|
|
134
|
+
Ask the AI tool to call `skill:import`, then give it either:
|
|
122
135
|
|
|
123
|
-
|
|
136
|
+
- a local skill path
|
|
137
|
+
- a remote skill root URL that exposes `SKILL.md`
|
|
124
138
|
|
|
125
|
-
|
|
139
|
+
Examples:
|
|
126
140
|
|
|
127
141
|
```json
|
|
128
142
|
{
|
|
129
|
-
"
|
|
130
|
-
"aai-gateway": {
|
|
131
|
-
"command": "npx",
|
|
132
|
-
"args": ["aai-gateway"]
|
|
133
|
-
}
|
|
134
|
-
}
|
|
143
|
+
"path": "/absolute/path/to/skill"
|
|
135
144
|
}
|
|
136
145
|
```
|
|
137
146
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
claude mcp add aai-gateway npx aai-gateway
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"url": "https://example.com/skill"
|
|
150
|
+
}
|
|
143
151
|
```
|
|
144
152
|
|
|
145
|
-
|
|
153
|
+
Just like MCP import, skill import returns:
|
|
146
154
|
|
|
147
|
-
|
|
148
|
-
|
|
155
|
+
- the generated app id
|
|
156
|
+
- generated `keywords`
|
|
157
|
+
- generated `summary`
|
|
158
|
+
- the guide tool name: `app:<id>`
|
|
149
159
|
|
|
150
|
-
|
|
160
|
+
Then restart your AI tool before using the imported skill.
|
|
151
161
|
|
|
152
|
-
|
|
162
|
+
### 4. Supported ACP Agents
|
|
153
163
|
|
|
154
|
-
|
|
155
|
-
<summary>Copilot / VS Code</summary>
|
|
164
|
+
AAI Gateway can also control app-like agents through ACP.
|
|
156
165
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
166
|
+
Currently supported ACP agent types:
|
|
167
|
+
|
|
168
|
+
- OpenCode
|
|
169
|
+
- Claude Code
|
|
170
|
+
- Codex
|
|
171
|
+
|
|
172
|
+
## App Auto Discovery
|
|
173
|
+
|
|
174
|
+
AAI Gateway discovers apps from four places:
|
|
160
175
|
|
|
161
|
-
|
|
176
|
+
- desktop descriptors
|
|
177
|
+
- web descriptors
|
|
178
|
+
- gateway-managed imports
|
|
179
|
+
- built-in ACP agent descriptors
|
|
162
180
|
|
|
163
|
-
|
|
164
|
-
<summary>Cursor</summary>
|
|
181
|
+
### The AAI Descriptor
|
|
165
182
|
|
|
166
|
-
|
|
183
|
+
The descriptor is a small `aai.json` file. It tells AAI Gateway:
|
|
167
184
|
|
|
168
|
-
|
|
185
|
+
- what the app is
|
|
186
|
+
- how to connect to it
|
|
187
|
+
- how to expose it at low context cost
|
|
169
188
|
|
|
170
|
-
|
|
171
|
-
<summary>OpenCode</summary>
|
|
189
|
+
Minimal example:
|
|
172
190
|
|
|
173
191
|
```json
|
|
174
192
|
{
|
|
175
|
-
"
|
|
176
|
-
"
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
"
|
|
180
|
-
"enabled": true
|
|
193
|
+
"schemaVersion": "2.0",
|
|
194
|
+
"version": "1.0.0",
|
|
195
|
+
"app": {
|
|
196
|
+
"name": {
|
|
197
|
+
"default": "Example App"
|
|
181
198
|
}
|
|
199
|
+
},
|
|
200
|
+
"access": {
|
|
201
|
+
"protocol": "cli",
|
|
202
|
+
"config": {
|
|
203
|
+
"command": "example-app"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"exposure": {
|
|
207
|
+
"keywords": ["example", "utility"],
|
|
208
|
+
"summary": "Use this app when the user wants to work with Example App."
|
|
182
209
|
}
|
|
183
210
|
}
|
|
184
211
|
```
|
|
185
212
|
|
|
186
|
-
|
|
213
|
+
Supported `access.protocol` values today:
|
|
214
|
+
|
|
215
|
+
- `mcp`
|
|
216
|
+
- `skill`
|
|
217
|
+
- `acp-agent`
|
|
218
|
+
- `cli`
|
|
187
219
|
|
|
188
|
-
|
|
220
|
+
### Where To Put `aai.json`
|
|
189
221
|
|
|
190
|
-
|
|
222
|
+
#### Web Apps
|
|
223
|
+
|
|
224
|
+
Publish it at:
|
|
225
|
+
|
|
226
|
+
```text
|
|
227
|
+
https://<your-host>/.well-known/aai.json
|
|
228
|
+
```
|
|
191
229
|
|
|
192
|
-
|
|
193
|
-
| ----------- | ----------------------------------------------- |
|
|
194
|
-
| `--dev` | Development mode, scans Xcode build directories |
|
|
195
|
-
| `--scan` | Scan for AAI-enabled apps and exit |
|
|
196
|
-
| `--version` | Show version |
|
|
197
|
-
| `--help` | Show help |
|
|
230
|
+
AAI Gateway fetches that path when the user calls `remote:discover`.
|
|
198
231
|
|
|
199
|
-
|
|
232
|
+
#### macOS Apps
|
|
200
233
|
|
|
201
|
-
|
|
234
|
+
Recommended locations scanned by the gateway:
|
|
202
235
|
|
|
203
|
-
|
|
236
|
+
- `<YourApp>.app/Contents/Resources/aai.json`
|
|
237
|
+
- `~/Library/Containers/<container>/Data/Library/Application Support/aai.json`
|
|
238
|
+
- `~/Library/Containers/<container>/Data/Library/Application Support/aai-gateway/aai.json`
|
|
204
239
|
|
|
205
|
-
|
|
240
|
+
#### Linux Apps
|
|
206
241
|
|
|
207
|
-
|
|
242
|
+
The gateway scans for `aai.json` under:
|
|
208
243
|
|
|
209
|
-
|
|
244
|
+
- `/usr/share`
|
|
245
|
+
- `/usr/local/share`
|
|
246
|
+
- `~/.local/share`
|
|
210
247
|
|
|
211
|
-
|
|
212
|
-
| ----------- | -------------------------------------------- |
|
|
213
|
-
| **Web** | `https://<your-domain>/.well-known/aai.json` |
|
|
214
|
-
| **macOS** | `<App>.app/Contents/Resources/aai.json` |
|
|
215
|
-
| **Windows** | `<App>.exe directory/aai.json` |
|
|
216
|
-
| **Linux** | `/usr/share/<app>/aai.json` |
|
|
248
|
+
#### Windows Apps
|
|
217
249
|
|
|
218
|
-
|
|
250
|
+
The gateway scans for `aai.json` under:
|
|
219
251
|
|
|
220
|
-
|
|
252
|
+
- `C:\Program Files`
|
|
253
|
+
- `C:\Program Files (x86)`
|
|
254
|
+
- `%LOCALAPPDATA%`
|
|
221
255
|
|
|
222
|
-
|
|
256
|
+
### Descriptor Guidelines
|
|
223
257
|
|
|
224
|
-
|
|
225
|
-
2. Register in `src/discovery/web-registry.ts`
|
|
226
|
-
3. Submit a pull request
|
|
258
|
+
Keep descriptors small and practical:
|
|
227
259
|
|
|
228
|
-
|
|
260
|
+
- make `app.name.default` clear
|
|
261
|
+
- keep `keywords` short and high-signal
|
|
262
|
+
- make `summary` explain when the app should be used
|
|
263
|
+
- put detailed capability data in the downstream protocol, not in the descriptor
|
|
229
264
|
|
|
230
|
-
|
|
231
|
-
- Custom auth configurations
|
|
232
|
-
- Cold-start scenarios
|
|
265
|
+
If your app already speaks MCP, keep the descriptor minimal and let MCP provide tool detail lazily.
|
|
233
266
|
|
|
234
|
-
|
|
267
|
+
## Submit A Pull Request To Preload A Descriptor
|
|
235
268
|
|
|
236
|
-
|
|
269
|
+
If you want AAI Gateway to ship with a descriptor by default, open a PR.
|
|
237
270
|
|
|
238
|
-
|
|
239
|
-
- Supports **internationalized names** with language fallback
|
|
240
|
-
- Auth types: `oauth2`, `apiKey`, `appCredential`, `cookie`
|
|
241
|
-
- Tools defined with JSON Schema parameters
|
|
271
|
+
What to include:
|
|
242
272
|
|
|
243
|
-
|
|
273
|
+
- the descriptor itself
|
|
274
|
+
- a safe discovery rule that proves the app is actually installed
|
|
275
|
+
- the connection config
|
|
276
|
+
- a short explanation of why the integration should be bundled
|
|
244
277
|
|
|
245
|
-
|
|
278
|
+
Today, built-in ACP agent descriptors live in:
|
|
246
279
|
|
|
247
|
-
|
|
248
|
-
| --------------- | ------------------ | -------------------------- |
|
|
249
|
-
| `oauth2` | User authorization | Browser OAuth 2.0 + PKCE |
|
|
250
|
-
| `apiKey` | Static API tokens | Dialog prompts for token |
|
|
251
|
-
| `appCredential` | Enterprise apps | Dialog for App ID + Secret |
|
|
252
|
-
| `cookie` | No official API | Manual cookie extraction |
|
|
280
|
+
- `src/discovery/descriptors/`
|
|
253
281
|
|
|
254
|
-
|
|
282
|
+
And they are registered in:
|
|
255
283
|
|
|
256
|
-
|
|
257
|
-
| ----------- | ---------------------- | ------------ | --------- | -------- |
|
|
258
|
-
| **macOS** | Supported | Apple Events | osascript | Keychain |
|
|
259
|
-
| **Linux** | XDG paths | DBus (gdbus) | zenity/kdialog | libsecret |
|
|
260
|
-
| **Windows** | Program Files | COM (PowerShell) | PowerShell | CredMan |
|
|
261
|
-
| **Web** | `.well-known/aai.json` | HTTP | N/A | Platform |
|
|
284
|
+
- `src/discovery/agent-registry.ts`
|
|
262
285
|
|
|
263
|
-
|
|
286
|
+
For a typical PR:
|
|
264
287
|
|
|
265
|
-
|
|
288
|
+
1. Add the descriptor file.
|
|
289
|
+
2. Add or update discovery checks.
|
|
290
|
+
3. Register it in the appropriate discovery source.
|
|
291
|
+
4. Update the README if the new integration is user-facing.
|
|
266
292
|
|
|
267
|
-
|
|
268
|
-
- **Execution Policy**: Must allow script execution
|
|
269
|
-
```powershell
|
|
270
|
-
# Check current policy
|
|
271
|
-
Get-ExecutionPolicy
|
|
272
|
-
|
|
273
|
-
# Set to allow local scripts (recommended)
|
|
274
|
-
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
275
|
-
```
|
|
276
|
-
- **Credential Manager**: Built-in Windows feature, no additional setup needed
|
|
293
|
+
If you are unsure whether an integration should be bundled, open an issue first.
|
|
277
294
|
|
|
278
|
-
|
|
295
|
+
## Disclaimer
|
|
279
296
|
|
|
280
|
-
|
|
281
|
-
- **Dialog Tools**: Install one of the following:
|
|
282
|
-
```bash
|
|
283
|
-
# Ubuntu/Debian
|
|
284
|
-
sudo apt install zenity # or kdialog
|
|
285
|
-
|
|
286
|
-
# Fedora
|
|
287
|
-
sudo dnf install zenity # or kdialog
|
|
288
|
-
|
|
289
|
-
# Arch Linux
|
|
290
|
-
sudo pacman -S zenity # or kdialog
|
|
291
|
-
```
|
|
292
|
-
- **libsecret**: For secure credential storage
|
|
293
|
-
```bash
|
|
294
|
-
# Ubuntu/Debian
|
|
295
|
-
sudo apt install libsecret-tools
|
|
296
|
-
|
|
297
|
-
# Fedora
|
|
298
|
-
sudo dnf install libsecret
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
---
|
|
302
|
-
|
|
303
|
-
### Upcoming Apps
|
|
304
|
-
|
|
305
|
-
The following apps are planned for future integration, organized by priority:
|
|
306
|
-
|
|
307
|
-
#### 🚀 Priority P0 - High Activity + Simple Integration
|
|
308
|
-
|
|
309
|
-
| App | Auth Type | API Base | Description |
|
|
310
|
-
|-----|-----------|----------|-------------|
|
|
311
|
-
| **GitHub** | OAuth2 / API Key | `api.github.com` | Code hosting, repositories, issues, PRs |
|
|
312
|
-
| **Linear** | API Key | `api.linear.app` | Modern project management |
|
|
313
|
-
| **Stripe** | API Key | `api.stripe.com` | Payment processing |
|
|
314
|
-
| **Slack** | OAuth2 / Bot Token | `slack.com/api` | Team messaging and channels |
|
|
315
|
-
| **Jira** | OAuth2 / API Token | `api.atlassian.com` | Issue and project tracking |
|
|
316
|
-
| **Gitee** | API Key | `gitee.com/api/v5` | Code hosting (China) |
|
|
317
|
-
|
|
318
|
-
#### 🔥 Priority P1 - High Activity
|
|
319
|
-
|
|
320
|
-
| App | Auth Type | API Base | Description |
|
|
321
|
-
|-----|-----------|----------|-------------|
|
|
322
|
-
| **Google Drive** | OAuth2 | `www.googleapis.com/drive` | Cloud storage and files |
|
|
323
|
-
| **Google Calendar** | OAuth2 | `www.googleapis.com/calendar` | Calendar and scheduling |
|
|
324
|
-
| **Airtable** | API Key / OAuth2 | `api.airtable.com` | Database and spreadsheets |
|
|
325
|
-
| **Trello** | API Key + Token | `api.trello.com/1` | Kanban boards |
|
|
326
|
-
| **Asana** | API Key / OAuth2 | `app.asana.com/api/1.0` | Project management |
|
|
327
|
-
| **Discord** | Bot Token / OAuth2 | `discord.com/api/v10` | Community messaging |
|
|
328
|
-
| **GitLab** | API Key / OAuth2 | `gitlab.com/api/v4` | DevOps platform |
|
|
329
|
-
| **DingTalk (钉钉)** | App Credential | `api.dingtalk.com/v1.0` | Enterprise messaging (China) |
|
|
330
|
-
| **WeCom (企业微信)** | App Credential | `qyapi.weixin.qq.com/cgi-bin` | Enterprise WeChat (China) |
|
|
331
|
-
|
|
332
|
-
#### 📈 Priority P2 - Medium Activity
|
|
333
|
-
|
|
334
|
-
**Project Management & Collaboration:**
|
|
335
|
-
|
|
336
|
-
| App | Auth Type | Description |
|
|
337
|
-
|-----|-----------|-------------|
|
|
338
|
-
| Monday.com | API Key | Work management platform |
|
|
339
|
-
| ClickUp | API Key | Productivity platform |
|
|
340
|
-
| Basecamp | OAuth2 | Project collaboration |
|
|
341
|
-
| Bitbucket | API Key / OAuth2 | Git repository hosting |
|
|
342
|
-
|
|
343
|
-
**Communication & Email:**
|
|
344
|
-
|
|
345
|
-
| App | Auth Type | Description |
|
|
346
|
-
|-----|-----------|-------------|
|
|
347
|
-
| Gmail | OAuth2 | Email by Google |
|
|
348
|
-
| Microsoft Outlook | OAuth2 | Email by Microsoft |
|
|
349
|
-
| SendGrid | API Key | Email delivery service |
|
|
350
|
-
| Mailgun | API Key | Email API service |
|
|
351
|
-
| Twilio | API Key | SMS and voice API |
|
|
352
|
-
| Tencent Meeting | OAuth2 / App Credential | Video conferencing (China) |
|
|
353
|
-
|
|
354
|
-
**Data & Storage:**
|
|
355
|
-
|
|
356
|
-
| App | Auth Type | Description |
|
|
357
|
-
|-----|-----------|-------------|
|
|
358
|
-
| Supabase | API Key | Backend-as-a-Service |
|
|
359
|
-
| PlanetScale | API Key | Serverless MySQL |
|
|
360
|
-
| Neon | API Key | Serverless PostgreSQL |
|
|
361
|
-
| Aliyun Drive | OAuth2 | Cloud storage (China) |
|
|
362
|
-
| Baidu Netdisk | OAuth2 | Cloud storage (China) |
|
|
363
|
-
|
|
364
|
-
**Payments & Commerce:**
|
|
365
|
-
|
|
366
|
-
| App | Auth Type | Description |
|
|
367
|
-
|-----|-----------|-------------|
|
|
368
|
-
| PayPal | OAuth2 | Payment platform |
|
|
369
|
-
| Square | API Key | Payment processing |
|
|
370
|
-
| Shopify | API Key | E-commerce platform |
|
|
371
|
-
| WeChat Pay | App Credential | Payment platform (China) |
|
|
372
|
-
|
|
373
|
-
#### 🔍 Priority P3 - Search & AI
|
|
374
|
-
|
|
375
|
-
| App | Auth Type | API Base | Description |
|
|
376
|
-
|-----|-----------|----------|-------------|
|
|
377
|
-
| Brave Search | API Key | `api.search.brave.com/res/v1` | Privacy-focused search |
|
|
378
|
-
| Perplexity | API Key | `api.perplexity.ai` | AI search engine |
|
|
379
|
-
| Exa | API Key | `api.exa.ai` | AI-powered search |
|
|
380
|
-
| Tavily | API Key | `api.tavily.com` | Search API for AI |
|
|
381
|
-
|
|
382
|
-
#### ❌ Not Suitable for AAI Gateway
|
|
383
|
-
|
|
384
|
-
The following MCP server types are **NOT suitable** for AAI Gateway as they require local implementation:
|
|
385
|
-
|
|
386
|
-
| Type | Examples | Reason |
|
|
387
|
-
|------|----------|--------|
|
|
388
|
-
| Local Filesystem | Filesystem, Memory | Requires local file access |
|
|
389
|
-
| Version Control | Git | Requires local git commands |
|
|
390
|
-
| Browser Automation | Playwright, Puppeteer | Requires browser instance |
|
|
391
|
-
| Code Execution | E2B, Riza | Requires sandbox environment |
|
|
392
|
-
| Database Drivers | PostgreSQL, MySQL, SQLite | Requires database drivers |
|
|
393
|
-
| System Commands | Shell, Terminal | Requires local command execution |
|
|
394
|
-
|
|
395
|
-
---
|
|
396
|
-
|
|
397
|
-
Want to see your app prioritized? [Open an issue](https://github.com/gybob/aai-gateway/issues).
|
|
398
|
-
## Links
|
|
297
|
+
AAI Gateway is still under active development.
|
|
399
298
|
|
|
400
|
-
|
|
401
|
-
- [Report Issues](https://github.com/gybob/aai-gateway/issues) - Bug reports and feature requests
|
|
299
|
+
You should expect rough edges, missing pieces, and bugs.
|
|
402
300
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
## License
|
|
406
|
-
|
|
407
|
-
Apache-2.0
|
|
301
|
+
Contributions are welcome.
|