dixa-mcp
0
Provides a FastMCP server implementation for managing conversations and tags within the Dixa API.
Dixa MCP Server
A FastMCP server implementation for the Dixa API, providing resources and tools for managing conversations and tags.
Features
-
Resources
- Search conversations
- Get conversation details
- Get conversation notes
- Get conversation messages
- Get available tags
-
Tools
- Add tags to conversations
- Remove tags from conversations
Project Structure
/src
├── dixa.ts # Main server setup
├── config.ts # Configuration and environment settings
├── types.ts # Shared types and error handling
├── resources/ # Resource implementations
├── schemas/ # Zod schemas for validation
└── tools/ # Tool implementations
Configuration
The server requires the following environment variables:
DIXA_API_KEY
: Your Dixa API keyDIXA_API_BASE_URL
(optional): Override the default API URL (defaults to 'https://dev.dixa.io/v1')
Usage
- Set up environment variables:
export DIXA_API_KEY='your-api-key'
- Start the server:
npm start
## Running Your Server
### Test with `mcp-cli`
The fastest way to test and debug your server is with `fastmcp dev`:
```bash
npx fastmcp dev server.js
npx fastmcp dev server.ts
This will run your server with mcp-cli
for testing and debugging your MCP server in the terminal.
Inspect with MCP Inspector
Another way is to use the official MCP Inspector
to inspect your server with a Web UI:
npx fastmcp inspect server.ts
FAQ
How to use with Claude Desktop?
Follow the guide https://modelcontextprotocol.io/quickstart/user and add the following configuration:
{
"mcpServers": {
"my-mcp-server": {
"command": "npx",
"args": [
"tsx",
"/PATH/TO/YOUR_PROJECT/src/index.ts"
],
"env": {
"YOUR_ENV_VAR": "value"
}
}
}
}
Development
Adding a New Resource
- Create a schema in
src/schemas/
- Create the resource in
src/resources/
- Add the resource to
src/dixa.ts
Example resource:
export const myResource = {
uri: "dixa://my-resource",
name: "My Resource",
description: "Description",
load: async (args: MyArgs, apiKey: string) => {
// Implementation
}
};
Adding a New Tool
- Create the tool in
src/tools/
- Add the tool to
src/dixa.ts
Example tool:
export const myTool = {
name: "My Tool",
description: "Description",
execute: async (args: MyArgs, apiKey: string) => {
// Implementation
}
};
Error Handling
The project uses custom error classes:
DixaError
: Base error class for API errorsDixaValidationError
: For response validation failures
Showcase
[!NOTE]
If you've developed a server using FastMCP, please submit a PR to showcase it here!
- https://github.com/apinetwork/piapi-mcp-server
- https://github.com/Meeting-Baas/meeting-mcp - Meeting BaaS MCP server that enables AI assistants to create meeting bots, search transcripts, and manage recording data
Acknowledgements
- FastMCP is inspired by the Python implementation by Jonathan Lowin.
- Parts of codebase were adopted from LiteMCP.
- Parts of codebase were adopted from Model Context protocolでSSEをやってみる.
Contributing
- Follow the existing patterns for resources and tools
- Add proper JSDoc documentation
- Use the shared utilities in
types.ts
andconfig.ts
- Update the README if adding new features