MCP Server for ElevenLabs
A Model Context Protocol server for ElevenLabs conversational agents that enables them to search the web, get weather information, and perform calculations.
README Documentation
MCP Server for ElevenLabs
A Model Context Protocol (MCP) server specifically designed for ElevenLabs conversational agents, providing tools for agents to interact with external services and perform various tasks.
📋 Project Documentation: This project has specific deployment requirements and structure decisions. See PROJECT-STRUCTURE.md before making any changes.
Features
This MCP server provides the following tools:
- search_web: Search the web for information
- get_weather: Get current weather information for a location
- calculate: Perform mathematical calculations
- create_sickleave: Create a sick leave document for a patient
Installation
- Install dependencies:
npm install
- Start the server:
npm start
ElevenLabs Integration
This server is specifically designed for ElevenLabs conversational agents. For detailed setup instructions, see ELEVENLABS-INTEGRATION.md.
⚠️ IMPORTANT: Before making any changes to this project, read PROJECT-STRUCTURE.md for critical deployment requirements and lessons learned.
Quick Start for ElevenLabs:
npm start
Then add http://localhost:3000/mcp
to your ElevenLabs agent's MCP server configuration.
Usage
Development Mode
Run the server:
npm start
Production Mode
Run the server:
npm start
Configuration
The server can be configured by modifying the following:
- Server name and version: Edit
elevenlabs-true-streamable.js
- Tool implementations: Edit
elevenlabs-true-streamable.js
- Tool schemas: Modify the schemas in
elevenlabs-true-streamable.js
Note: This project uses a single-file approach for deployment reliability. All tools and schemas are hardcoded in the main server file.
Adding New Tools
To add a new tool:
- Define the tool schema in
elevenlabs-true-streamable.js
:
{
name: "new_tool",
description: "Description of the new tool",
inputSchema: {
type: "object",
properties: {
parameter: { type: "string", description: "Description of the parameter" }
},
required: ["parameter"]
}
}
- Implement the tool handler in
elevenlabs-true-streamable.js
:
async function handleNewTool(args) {
// Your tool implementation here
return {
content: [
{
type: "text",
text: "Tool result",
},
],
};
}
- Add the tool to the tools array and the handler to the switch statement in
elevenlabs-true-streamable.js
Note: This project uses a single-file approach. All modifications should be made directly in
elevenlabs-true-streamable.js
.
case "new_tool":
return await handleNewTool(args);
MCP Client Configuration
To use this server with an MCP client, add the following configuration:
{
"mcpServers": {
"my-mcp-server": {
"command": "node",
"args": ["path/to/your/mcp-server/dist/index.js"],
"env": {}
}
}
}
Development
Project Structure
src/
├── index.ts # Main server entry point
├── tools.ts # Tool definitions and implementations
└── types.ts # Type definitions (if needed)
Scripts
npm run build
: Build the TypeScript codenpm run dev
: Run in development mode with hot reloadingnpm start
: Run the built servernpm test
: Run tests (when implemented)
Dependencies
@modelcontextprotocol/sdk
: MCP SDK for server implementationzod
: Schema validation and type safetytypescript
: TypeScript compilertsx
: TypeScript execution for development
License
MIT