Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

MCP servers powered by ACI.dev

Table of Contents

Overview

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

Prerequisites

Before using this package, you need to (for more information please see tutorial):

  1. Set the AIPOLABS_ACI_API_KEY environment variable with your ACI.dev API key
  2. Configure apps and set them in allowed_apps for your agent on platform.aci.dev.
  3. Link your app specific accounts under the same --linked-account-owner-id you'll later provide to start the MCP servers

Installation

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

Usage

Apps Server

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

Unified Server

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.

The functions (tools) are dynamically searched and executed based on your intent/needs. You don't need to worry about having thousands of tools taking up your LLM's context window or having to integrate multiple MCP servers.

# 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

Understanding the Two Server Types

Apps Server

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.

Unified Server

The unified server doesn't directly expose app-specific tools. Instead, it provides two meta functions (tools):

  1. ACI_SEARCH_FUNCTIONS_WITH_INTENT: Discovers functions (tools) based on your intent/needs
  2. 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. It can search for the right tool based on your needs and then execute it.

Configuration

Usage with Claude Desktop

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>"]
    }
  }
}

Usage with Cursor

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>"
        }
    }
  }
}

FAQ

  • How do I get the 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.

  • How to configure Apps and allow access to them?

    You can configure apps and allow access to them in the ACI.dev project settings.

  • How do I get the 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.

  • What is the benefit of using the unified server over the apps server?

    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.

  • How to specify a list of apps to use with the apps server?

    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.

  • Can I just use functions (tools) from one app?

    Yes, you can just use functions (tools) from one app by specifying the (one) app name with the --apps parameter.

Debugging

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.

Metadata

Release files for aipolabs-mcp 0.0.1b5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aipolabs-mcp 0.0.1b5
File Size Uploaded Provenance
aipolabs_mcp-0.0.1b5.tar.gz 29.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aipolabs-mcp 0.0.1b5
File Interpreter ABI Platform
aipolabs_mcp-0.0.1b5-py3-none-any.whl Python 3 none any Details

Total release size: 38.5 kB

Release files / aipolabs_mcp-0.0.1b5.tar.gz

Download URL aipolabs_mcp-0.0.1b5.tar.gz
Size 29.5 kB
Tags Source
SHA-256 checksum
How to use checksums
677981b09605149cbac5161423b1519c955b5a2c080131ad3ed6f245f6b3f5cf
BLAKE2b-256 checksum
How to use checksums
c209ed0cb2f6e1d0527af8b0335a4eb300a30296bc3b32b4a39fdf9ce826c72c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.6

Release files / aipolabs_mcp-0.0.1b5-py3-none-any.whl

Download URL aipolabs_mcp-0.0.1b5-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e06c24b009ad83f704bc95d71bcdd782c87efd3cbe4a399b88f0706485d3e16a
BLAKE2b-256 checksum
How to use checksums
145929674c4aace849bfb4dbb5b09ef3d5d2e5d95f345243c5422ee9ab284dca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.6

Security for aipolabs-mcp 0.0.1b5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page