ACI.dev MCP server

Connects your AI agents to 600+ tool integrations with multi-tenant auth and granular permissions.
Back to servers
Setup instructions
Provider
Aipotheosis Labs
Release date
Apr 23, 2025
Stats
4.4K stars

ACI.dev is an open-source tool-calling platform that provides a unified MCP (Model Context Protocol) server, allowing AI agents to access over 600 tools through secure function calls with multi-tenant authentication and granular permissions. This guide will help you set up and use the ACI MCP server.

Installation

Prerequisites

Before installing the ACI MCP server, ensure you have the following:

  • Python installed on your system
  • pip package manager
  • Git (optional, for cloning the repository)

Setting Up the ACI MCP Server

You can install the ACI MCP server in two ways:

Option 1: Using pip

The simplest way to install the ACI server is through pip:

pip install aci-sdk

Option 2: Clone the Repository

Alternatively, you can clone the repository and install it:

git clone https://github.com/aipotheosis-labs/aci-mcp
cd aci-mcp
pip install -e .

Environment Configuration

Create a .env file in your project root with the following configuration:

# Basic configuration
ACI_API_KEY=your_api_key_here
ACI_ENVIRONMENT=development

# Database configuration (if using a custom database)
DATABASE_URL=your_database_connection_string

# Authentication settings (optional)
AUTH_SECRET=your_auth_secret

Usage

Starting the MCP Server

To start the ACI MCP server, run:

aci-server start --port 8000

You can customize the port and other settings:

aci-server start --port 8080 --host 0.0.0.0 --debug

Connecting to the MCP Server

You can connect to the MCP server from your applications using the ACI SDK:

from aci_sdk import ACIClient

# Initialize the client
client = ACIClient(
    api_key="your_api_key",
    base_url="http://localhost:8000"  # Point to your local MCP server
)

# Example: Call a tool function
result = client.call_function(
    tool_name="google_calendar",
    function_name="list_events",
    parameters={
        "calendar_id": "primary",
        "time_min": "2023-01-01T00:00:00Z",
        "time_max": "2023-01-31T23:59:59Z"
    }
)

print(result)

Using with AI Agents

To use the MCP server with AI agents, configure your agent to use the MCP protocol:

from langchain import OpenAI
from aci_sdk import ACIMCPConnector

# Create an MCP connector for your agent
mcp_connector = ACIMCPConnector(
    mcp_server_url="http://localhost:8000",
    api_key="your_api_key"
)

# Initialize your agent with the MCP connector
llm = OpenAI(temperature=0.7)
agent = mcp_connector.create_agent(llm)

# Now your agent can use any tool available in the MCP server
response = agent.run("Schedule a meeting with John tomorrow at 2pm")

Authentication and Authorization

Setting Up OAuth

For tools requiring OAuth (like Google or Microsoft services):

  1. Register the application in the respective developer console
  2. Configure the OAuth credentials in your MCP server:
aci-server configure-oauth --provider google \
    --client-id YOUR_CLIENT_ID \
    --client-secret YOUR_CLIENT_SECRET \
    --redirect-uri http://localhost:8000/oauth/callback

Managing User Access

You can manage user access to different tools:

# Grant a user access to a specific tool
aci-server permissions grant --user [email protected] --tool google_calendar

# Revoke access
aci-server permissions revoke --user [email protected] --tool google_calendar

Advanced Configuration

Custom Tool Integration

To add custom tools to your MCP server:

  1. Create a tool definition file:
# my_custom_tool.py
from aci_sdk import Tool, Function, Parameter

my_tool = Tool(
    name="my_custom_tool",
    description="A custom tool for specific operations",
    functions=[
        Function(
            name="do_something",
            description="Performs a custom operation",
            parameters=[
                Parameter(name="param1", type="string", description="First parameter"),
                Parameter(name="param2", type="integer", description="Second parameter")
            ]
        )
    ]
)

def do_something(param1, param2):
    # Implementation
    return {"result": f"Processed {param1} with value {param2}"}
  1. Register the tool with your MCP server:
aci-server register-tool --path ./my_custom_tool.py

Configuring for Production

For production deployments, set these additional environment variables:

NODE_ENV=production
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60
ENABLE_TELEMETRY=false

Troubleshooting

Common Issues

Connection Refused

If you see "Connection refused" errors:

  • Check if the MCP server is running
  • Verify the port is correct and not blocked by a firewall
  • Ensure you're using the correct base URL in your client

Authentication Errors

For authentication issues:

# Check the current authentication status
aci-server auth status

# Re-authenticate if needed
aci-server auth login

Tool Discovery Problems

If tools aren't being discovered properly:

# List all available tools
aci-server list-tools

# Refresh tool cache
aci-server refresh-tools

Performance Optimization

For better performance in high-load scenarios:

# Start with optimized settings
aci-server start --workers 4 --timeout 60 --max-requests 1000

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "aci-dev" '{"command":"npx","args":["-y","aci"]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "aci-dev": {
            "command": "npx",
            "args": [
                "-y",
                "aci"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "aci-dev": {
            "command": "npx",
            "args": [
                "-y",
                "aci"
            ]
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later