Unified MCP Server
Unified, Dynamic Function (Tool) Discovery and Execution
Overview
The Unified MCP Server provides a smart, scalable approach to function calling by exposing just two meta functions (tools) that can:
- Dynamically discover the right functions (tools) based on user intent
- Execute any function on the ACI.dev platform retrieved from the search results
How It Works
The Unified MCP Server
exposes two meta-functions:
ACI_SEARCH_FUNCTIONS
- Discovers functions based on your intent/needsACI_EXECUTE_FUNCTION
- Executes any function discovered by the search
This approach allows LLMs to first search for the right tool based on the user’s needs and then execute it, without needing to list all available functions upfront.
Benefits
- Reduced Context Window Usage - Instead of loading hundreds of function definitions into your LLM’s context window, the unified server keeps it minimal with just two functions (tools)
- Dynamic Discovery - The server intelligently finds the most relevant tools for your specific task
- Complete Function Coverage - Access to ALL functions on the ACI.dev platform without configuration changes
- Simplified Integration - No need to manage multiple MCP servers for different apps or groups of functions (tools)
Prerequisites
Before using the Unified MCP Server
, you need to complete several setup steps on the ACI.dev platform.
Get your ACI.dev API Key
You’ll need an API key from one of your ACI.dev agents. Find this in your project setting
Set Allowed Apps
In your Project Setting , enable the apps you want your agent to access by adding them to the Allowed Apps
list.
For more details on how and why to set allowed apps, please refer to the Agent section.
Link Accounts For Each App
For each app you want to use, you’ll need to link end-user (or your own) accounts. During account linking, you’ll specify a linked-account-owner-id
which you’ll later provide when starting the MCP servers.
For more details on how to link accounts and what linked-account-owner-id
is, please refer to the Linked Accounts section.
Install the Package
Integration with MCP Clients
For a more reliable experience when using the Unified MCP Server, we recommend using the prompt below at the start of your conversation (feel free to modify it to your liking):
Replace the <LINKED_ACCOUNT_OWNER_ID>
and <YOUR_ACI_API_KEY>
below with the linked-account-owner-id
of your linked accounts and your ACI.dev API key respectively.
Cursor & Windsurf
Cursor & Windsurf
Make sure you hit the refresh button on the MCP settings page after entering your own API key and Owner ID.
Claude Desktop
Claude Desktop
Make sure to restart the Claude Desktop app after adding the MCP server configuration.
Running Locally
Running Locally
Commandline Arguments
[Optional] --allowed-apps-only
[Optional] --allowed-apps-only
The allowed-apps-only
flag is used to limit the apps/functions (tools) search (via ACI_SEARCH_FUNCTIONS
) to only the allowed apps that are accessible to this agent (which is identified by the ACI_API_KEY
). If not provided, the ACI_SEARCH_FUNCTIONS
will be conducted on all apps/functions available on the ACI.dev platform.
[Required] --linked-account-owner-id
[Required] --linked-account-owner-id
The linked-account-owner-id
is the owner ID of the linked accounts you want to use for the function execution. E.g., --linked-account-owner-id johndoe
means that the function execution (e.g, GMAIL__SEND_EMAIL
) will be done on behalf of the linked account of GMAIL
app with owner ID johndoe
.
[Optional] --transport
[Optional] --transport
The transport
argument is used to specify the transport protocol to use for the MCP server.
The default transport is stdio
.
[Optional] --port
[Optional] --port
The port
argument is used to specify the port to listen on for the MCP server if the --transport
is set to sse
.
The default port is 8000
.