custom-mcp-server

Henryk91/custom-mcp-server
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

A Model Context Protocol server that provides calculator operations, n8n workflow automation, customer support resources, and content creation prompts.

README.md

Custom MCP Server: Calculator & Workflow Automation

This is a custom Model Context Protocol (MCP) server built with Python using the FastMCP framework. It provides a set of calculator tools, resources for customer support, and prompts for content creation, along with integration to external n8n workflows.

Features

🛠️ Tools

Tools allow the AI model to perform actions or computations.

  • add(a, b): Add two numbers.
  • subtract(a, b): Subtract two numbers.
  • multiply(a, b): Multiply two numbers.
  • divide(a, b): Divide two numbers (handles division by zero).
  • trigger_n8n_workflow(prompt): Triggers a remote n8n workflow via webhook, sending a prompt and returning the response.

📚 Resources

Resources provide context and data to the AI model.

  • calculator://support-playbook: Reads and returns the content of the "Customer Support Playbook" (resource_exampe.md).

📝 Prompts

Prompts provide structured templates for the AI model to generate content.

  • webinar_blog_post: A template to convert a webinar transcript into an engaging blog post. requires: webinar_title, webinar_date, speakers, transcript.

Prerequisites

  • Python 3.10+ (Recommend managing with uv)
  • uv: A fast Python package installer and resolver.
  • npx: Required if you want to use the MCP Inspector for testing.

Installation & Setup

  1. Clone or Navigate to the Project Directory
  1. Install Dependencies

Use uv to sync the project dependencies:

    uv sync
  1. Configure Environment Variables

This server requires environment variables for the n8n integration.

Create a .env file from the example:

    cp .env.example .env

Open .env and configure your settings:

    N8N_WEBHOOK_URL=https://your-n8n-instance.com/webhook/...
    N8N_HEADER_NAME=Your-Header-Name
    N8N_HEADER_VALUE=Your-Header-Value

_Note: If N8N_HEADER_NAME and N8N_HEADER_VALUE are set, they will be included in the webhook request headers._

Usage

🔍 Testing with MCP Inspector

The MCP Inspector is a developer tool to test your server's tools, resources, and prompts in a web interface.

Run the follow command:

npx @modelcontextprotocol/inspector uv run server.py

This will launch a local server (usually at http://localhost:5173) where you can interact with your MCP server.

🤖 Integration with Claude for Desktop

To use this server with the Claude desktop app:

  1. Locate Configuration File:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  1. Update Configuration:

Add the server configuration to the mcpServers object. You can copy the contents of the claude_desktop_config.json file provided in this repository.

    {
      "mcpServers": {
        "calculator": {
          "command": "uv",
          "args": ["--directory", "/ABSOLUTE/PATH/TO/THIS/PROJECT", "run", "server.py"]
        }
      }
    }

Important: Replace /ABSOLUTE/PATH/TO/THIS/PROJECT with the actual absolute path to this directory on your machine.

  1. Restart Claude:

Restart the Claude application to load the new server.

Troubleshooting

  • Timeout Errors: The n8n workflow trigger has a 30-second timeout. If your workflow takes longer, you may need to increase this in server.py.
  • Missing Environment Variables: Ensure your .env file is properly set up and that you are running the server from the project root where the .env file is located.
  • Claude Connection Issues: Check Claude's logs for connection details. Ensure the absolute path in the config file is correct.

Project Structure

  • server.py: Main MCP server implementation.
  • resource_exampe.md: Source file for the support playbook resource.
  • prompt.md: Template file for the blog post prompt.
  • .env: (Ignored by git) Local configuration for secrets.
  • pyproject.toml: Python project and dependency definition.

Related MCP servers

Browse all →