Dixa MCP Server

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 key
  • DIXA_API_BASE_URL (optional): Override the default API URL (defaults to 'https://dev.dixa.io/v1')

Usage

  1. Set up environment variables:
export DIXA_API_KEY='your-api-key'
  1. 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

  1. Create a schema in src/schemas/
  2. Create the resource in src/resources/
  3. 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

  1. Create the tool in src/tools/
  2. 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 errors
  • DixaValidationError: For response validation failures

Showcase

Note

If you've developed a server using FastMCP, please submit a PR to showcase it here!

Acknowledgements

Contributing

  1. Follow the existing patterns for resources and tools
  2. Add proper JSDoc documentation
  3. Use the shared utilities in types.ts and config.ts
  4. Update the README if adding new features
-
security - not tested
A
license - permissive license
-
quality - not tested

A FastMCP server implementation for the Dixa API, enabling AI assistants to search, retrieve, and manage customer conversation data and tags.

  1. Features
    1. Project Structure
      1. Configuration
        1. Usage
          1. Inspect with MCP Inspector
        2. FAQ
          1. How to use with Claude Desktop?
        3. Development
          1. Adding a New Resource
          2. Adding a New Tool
        4. Error Handling
          1. Showcase
            1. Acknowledgements
              1. Contributing
                ID: pag7zu8nb8