Overview
We have a number of MCP tools that we make available to external MCP clients.
MCP schema
Here you can find a schema describing our MCP server and the tools it makes available.
Authentication
To securely access the Efimis API, applications must use the OAuth2 client credential flow authentication mechanism.
The Client ID and Client Secret are issued by Efimis, authorizing an application to access the API.
The tenant must also enable the application in the settings area to grant it access to the tenant’s data.
See Authentication Guide for details on OAuth 2.0 flows and making authenticated requests.
Making an MCP Request
To call the MCP Server, include the access_token in the Authorization header for when initialising your MCP client.
Our MCP server relies on Tenant and User ID headers until User Authentication Flow is in place.
Example Request (Python)
Requirements: Any MCP Client (We use FastMCP Python Libary in this example)
import asyncio
from fastmcp import Client
from fastmcp.client import StreamableHttpTransport
# HTTP server
transport = StreamableHttpTransport(
url="https://api.alpha.lfms.dev/mcp",
headers={
"Authorization": "Bearer <your-token>",
"X-MCP-USER-ID": "<efimis-user-id>",
"X-MCP-TENANT-ID": "<efimis-tenant-id>"
}
)
client = Client(transport)
async def main():
async with client:
# Basic server interaction
await client.ping()
# List available operations
tools = await client.list_tools()
print(tools)
# Execute operations
result = await client.call_tool("generate_fee_analysis", {"query": "Who are the top 5 fee earners of all time?"})
print(result)
asyncio.run(main())Security Best Practices
- Store credentials securely: Never expose Client IDs, Secrets, API Keys, or Tokens in frontend code.
- Use HTTPS: Always send authentication requests over a secure connection.
Reach out to us at connections@efimis.com to get access to your own free sandbox environment and a developer key.