This package provides two Model Context Protocol (MCP) servers for accessing ACI.dev managed functions (tools):
aipolabs-mcp-apps
: An MCP server that provides direct access to functions (tools) from specified apps.aipolabs-mcp-unified
: An MCP server that provides two meta functions (tools) (ACI_SEARCH_FUNCTIONS_WITH_INTENT
and ACI_EXECUTE_FUNCTION
) to discover and execute ALL functions (tools) available on ACI.dev.Before using this package, you need to:
AIPOLABS_ACI_API_KEY
environment variable with your ACI.dev API key.allowed_apps
for your agent on platform.aci.dev.--linked-account-owner-id
you'll later provide to start the MCP servers.The package is published to PyPI, so you can run it directly using uvx
:
# Install uv if you don't have it already
curl -sSf https://install.pypa.io/get-pip.py | python3 -
pip install uv
The apps server provides direct access to functions (tools) under specific apps. You can specify one or more apps to use with the --apps
parameter. (For a list of available apps, please visit ACI.dev)
# Using stdio transport (default)
uvx aipolabs-mcp apps-server --apps "BRAVE_SEARCH,GMAIL" --linked-account-owner-id <LINKED_ACCOUNT_OWNER_ID>
# Using SSE transport with custom port
uvx aipolabs-mcp apps-server --apps "BRAVE_SEARCH,GMAIL" --linked-account-owner-id <LINKED_ACCOUNT_OWNER_ID> --transport sse --port 8000
The unified server provides two meta functions (tools) to discover and execute ANY functions (tools) available on ACI.dev, even if they aren't directly listed in the server.
# During functions (tools) search/discovery, allow discoverability of all functions (tools) available on ACI.dev
uvx aipolabs-mcp unified-server --linked-account-owner-id <LINKED_ACCOUNT_OWNER_ID>
# During functions (tools) search/discovery, limit to only functions (tools) accessible by the requesting agent (identified by AIPOLABS_ACI_API_KEY)
uvx aipolabs-mcp unified-server --linked-account-owner-id <LINKED_ACCOUNT_OWNER_ID> --allowed-apps-only
The apps server provides direct access to specific app functions/tools you specify with the --apps
parameter. These tools will appear directly in the tool list when MCP clients (e.g. Claude Desktop, Cursor, etc.) interact with this server.
The unified server doesn't directly expose app-specific tools. Instead, it provides two meta functions (tools):
ACI_SEARCH_FUNCTIONS_WITH_INTENT
: Discovers functions (tools) based on your intent/needs.ACI_EXECUTE_FUNCTION
: Executes ANY function (tool) discovered by the search.This approach allows MCP clients to dynamically discover and use ANY function available on ACI.dev platform without needing to list them all upfront.
Add this to your claude_desktop_config.json
:
{
"mcpServers": {
"aipolabs-mcp-unified": {
"command": "uvx",
"args": ["aipolabs-mcp", "unified-server", "--linked-account-owner-id", "<LINKED_ACCOUNT_OWNER_ID>"]
}
}
}
For apps-specific access:
{
"mcpServers": {
"aipolabs-mcp-apps": {
"command": "uvx",
"args": ["aipolabs-mcp", "apps-server", "--apps", "BRAVE_SEARCH,GMAIL", "--linked-account-owner-id", "<LINKED_ACCOUNT_OWNER_ID>"]
}
}
}
Add to your Cursor mcp.json
:
{
"mcpServers": {
"aipolabs-mcp-unified": {
"command": "uvx",
"args": ["aipolabs-mcp", "unified-server", "--linked-account-owner-id", "<LINKED_ACCOUNT_OWNER_ID>"],
"env": {
"AIPOLABS_ACI_API_KEY": "<AIPOLABS_ACI_API_KEY>"
}
}
}
}
For apps-specific access:
{
"mcpServers": {
"aipolabs-mcp-apps": {
"command": "uvx",
"args": ["aipolabs-mcp", "apps-server", "--apps", "BRAVE_SEARCH,GMAIL", "--linked-account-owner-id", "<LINKED_ACCOUNT_OWNER_ID>"],
"env": {
"AIPOLABS_ACI_API_KEY": "<AIPOLABS_ACI_API_KEY>"
}
}
}
}
AIPOLABS_ACI_API_KEY
?The AIPOLABS_ACI_API_KEY
is the API key for your ACI.dev project. You can find it in the ACI.dev project settings.
You can configure apps and allow access to them in the ACI.dev project settings.
LINKED_ACCOUNT_OWNER_ID
?The LINKED_ACCOUNT_OWNER_ID
is the ID of the account that you want to use to access the functions. You can find it in the ACI.dev project settings.
Most of the current MCP servers are limited to a specific set of functions (tools), usually from a single app. If you need to use functions from multiple apps, you'll need to integrate multiple MCP servers. But even if you are ok with the managing overhead of integrating multiple MCP servers, your LLM tool calling performance might suffer because all the tools are loaded into the LLM's context window at once.
The unified server, however, allows you to discover and execute ANY function available on ACI.dev dynamically without worrying about having thousands of tools taking up your LLM's context window or having to integrate multiple MCP servers.
You can specify a comma-separated list of apps to use with the apps server using the --apps
parameter. Try NOT to have spaces between the app names.
Yes, you can just use functions (tools) from one app by specifying the (one) app name with the --apps
parameter.
You can use the MCP inspector to debug the server:
# For unified server
npx @modelcontextprotocol/inspector uvx aipolabs-mcp unified-server --linked-account-owner-id <LINKED_ACCOUNT_OWNER_ID>
# For apps server
npx @modelcontextprotocol/inspector uvx aipolabs-mcp apps-server --apps "BRAVE_SEARCH,GMAIL" --linked-account-owner-id <LINKED_ACCOUNT_OWNER_ID>
Running tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
will show the logs from the server and may help you debug any issues.
MCP server(s) for Aipolabs ACI.dev
No releases published
No packages published