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.
Before installing the ACI MCP server, ensure you have the following:
You can install the ACI MCP server in two ways:
The simplest way to install the ACI server is through pip:
pip install aci-sdk
Alternatively, you can clone the repository and install it:
git clone https://github.com/aipotheosis-labs/aci-mcp
cd aci-mcp
pip install -e .
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
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
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)
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")
For tools requiring OAuth (like Google or Microsoft services):
aci-server configure-oauth --provider google \
--client-id YOUR_CLIENT_ID \
--client-secret YOUR_CLIENT_SECRET \
--redirect-uri http://localhost:8000/oauth/callback
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
To add custom tools to your MCP server:
# 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}"}
aci-server register-tool --path ./my_custom_tool.py
For production deployments, set these additional environment variables:
NODE_ENV=production
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60
ENABLE_TELEMETRY=false
If you see "Connection refused" errors:
For authentication issues:
# Check the current authentication status
aci-server auth status
# Re-authenticate if needed
aci-server auth login
If tools aren't being discovered properly:
# List all available tools
aci-server list-tools
# Refresh tool cache
aci-server refresh-tools
For better performance in high-load scenarios:
# Start with optimized settings
aci-server start --workers 4 --timeout 60 --max-requests 1000
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.
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.
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"
]
}
}
}
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.
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.
To add this MCP server to Claude Desktop:
1. Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.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