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