Pocha MCP Server logo

Pocha MCP Server

by retz8

The Pocha MCP Server is a Model Context Protocol server designed to generate TypeScript API functions for the Pocha project. It automates the creation of type-safe API function templates, ensuring a consistent pattern.

View on GitHub

Last updated: N/A

Pocha MCP Server

A Model Context Protocol (MCP) server that generates TypeScript API functions for the Pocha project. This server provides a tool to automatically generate type-safe API function templates following a consistent pattern.

Features

  • Generates TypeScript API functions with proper typing
  • Supports GET, POST, PUT, DELETE HTTP methods
  • Includes authentication token handling
  • Generates proper error handling and response typing
  • Supports optional parameters and return types

Installation

# Clone the repository
git clone https://github.com/jiohjung98/pocha-mcp-server.git

# Install dependencies
pnpm install

# Build the project
pnpm build

Usage

The server provides a tool called generate-api-function that accepts the following parameters:

{
  functionName: string;          // Name of the API function to generate
  route: string;                 // API route path (e.g., "/pocha/${pochaid}")
  method: "GET" | "POST" | "PUT" | "DELETE";  // HTTP method
  params?: {                     // Optional array of parameters
    name: string;               // Parameter name
    type: string;               // Parameter type
  }[];
  returnType: string;           // Return type of the API function
}

Example

To generate an API function for fetching Pocha information:

// Input parameters
{
  "functionName": "getPocha",
  "route": "/pocha/${pochaid}",
  "method": "GET",
  "params": [
    {
      "name": "pochaid",
      "type": "number"
    }
  ],
  "returnType": "PochaInfo"
}

// Generated output
/**
 * @desc getPocha
 * @route GET /pocha/${pochaid}
 */
export async function getPocha(pochaid: number, token: string): Promise<PochaInfo> {
  const url = `/pocha/${pochaid}`;
  try {
    const response = await client.get(url, {
      headers: {
        Authorization: `Bearer ${token}`,
      },
    });

    return response?.data;
  } catch (error) {
    console.log(error);
    throw new Error("Error in getPocha");
  }
}

Development

The server is built using:

  • TypeScript
  • MCP TypeScript SDK
  • Zod for schema validation

To start development:

# Install dependencies
pnpm install

# Build in watch mode
pnpm dev

Project Structure

pocha-mcp-server/
├── src/
│   └── index.ts     # Main server implementation
├── dist/            # Compiled JavaScript
├── package.json
└── tsconfig.json

Cursor Setup

To use this MCP server in your Cursor IDE:

  1. Open your Cursor MCP configuration file:

    # macOS
    ~/.cursor/mcp.json
    
    # Windows
    %APPDATA%/cursor/mcp.json
    
    # Linux
    ~/.cursor/mcp.json
    
  2. Add the following configuration to the mcpServers object:

    {
      "mcpServers": {
        "pocha-api-generator": {
          "command": "/opt/homebrew/bin/npx",
          "args": ["-y", "node", "/path/to/your/pocha-mcp-server/dist/index.js"]
        }
      }
    }
    

    Replace /path/to/your/pocha-mcp-server with the actual path where you cloned this repository.

  3. Restart Cursor for the changes to take effect.

  4. The MCP server will now be available in Cursor, and you can use it to generate API functions by typing natural language commands like:

    Can you create a sample API for pocha project that fetches PochaInfo from "/pocha/${pochaid}" using "pocha-api-generator" mcp?
    

License

MIT License