MCP Servers
What is MCP?
Model Context Protocol (MCP) is an open standard that allows AI agents to connect to external tools and services. By connecting an agent to an MCP server, you give it access to a set of tools it can use during a conversation β for example, searching a database, reading a calendar, querying an API, or taking actions in a third-party system.
Once connected, the agent automatically discovers what the server can do and makes those capabilities available during chat.
Connecting an MCP Server to an Agent
Each agent can have one or more MCP servers attached to it. The same server can be connected to multiple agents independently.
To connect a server, you provide:
- The connection type β how Evolvable.ai communicates with the server
- The connection details β URL or command depending on the type
- Optionally, authentication credentials if the server requires them
Connection Types
| Type | Description |
|---|---|
| STDIO | Runs the MCP server as a local process on the same machine. Useful for command-line tools and local integrations. |
| HTTP | Connects to a remotely hosted MCP server over HTTP. The most common option. |
| SSE | Connects to a remote server using Server-Sent Events. Suitable for streaming-capable servers. |
For HTTP and SSE, you provide the serverβs base URL and a name to identify the connection.
For STDIO, you provide a configuration that describes the command to run the server locally.
Tool Management
After connecting, Evolvable.ai automatically discovers the tools the server exposes and makes them available to the agent.
Enabling specific tools
By default, all discovered tools are available. You can restrict the agent to a subset by selecting which tools to enable β any tools not in the selection will be ignored.
Syncing
If the serverβs tool list changes after the initial connection, use the sync option to refresh it without reconnecting.
Enabling and disabling the server
You can temporarily disable an MCP server connection. When disabled, none of its tools are available to the agent, but all configuration is preserved so you can re-enable it later.
Authentication
Many MCP servers require credentials. Evolvable.ai supports four authentication modes:
| Mode | Shared across users | Description |
|---|---|---|
| None | β | No credentials required |
| API Key | Yes | A single static key used for all users |
| Bearer Token with Refresh | Optional | Each user can have their own token; expired tokens are refreshed automatically |
| OAuth2 | No | Each user authenticates independently via OAuth2 |
Shared credentials (API Key)
A single credential is configured on the server connection and used for all conversations, regardless of who is chatting.
Per-user credentials (Bearer Token with Refresh / OAuth2)
When using these modes, individual users can have their own credentials for the server. This is useful when each user has their own account on the external service β for example, a personal calendar or CRM β and the agent should act on their behalf rather than with a shared identity.
If a user has no stored credentials, the agent falls back to the shared credentials configured on the connection.
Automatic Token Refresh
When using Bearer Token with Refresh, Evolvable.ai can refresh expired tokens automatically, so users donβt need to re-authenticate.
You configure a refresh endpoint on the server connection. When a userβs token is close to expiring or has already expired, Evolvable.ai calls that endpoint to obtain a new token. If the refresh succeeds, the new token is stored and used. If it fails and the token is still valid, the existing token is used. If the token is expired and the refresh fails, Evolvable.ai falls back to the shared credentials.
The refresh mechanism is compatible with standard OAuth2 providers such as Auth0, Okta, and Keycloak.
Structure Summary
Agent
βββ MCP Servers
βββ Connection Type (STDIO | HTTP | SSE)
βββ Authentication Mode
βββ Shared Credentials (optional)
βββ Per-User Credentials (optional, for Bearer Token / OAuth2)
βββ Token Refresh Configuration (optional)
βββ Discovered Tools
βββ Enabled Tools (optional subset)