Skip to main content
Glama

xmcp Application

This project was created with create-xmcp-app.

Built with Copilot

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev

This will start the MCP server with the selected transport method.

Related MCP server: Mock MCP Server

Project Structure

This project uses the structured approach where tools are automatically discovered from the src/tools directory. Each tool is defined in its own file with the following structure:

import { z } from "zod";
import { type InferSchema } from "xmcp";

// Define the schema for tool parameters
export const schema = {
  a: z.number().describe("First number to add"),
  b: z.number().describe("Second number to add"),
};

// Define tool metadata
export const metadata = {
  name: "add",
  description: "Add two numbers together",
  annotations: {
    title: "Add Two Numbers",
    readOnlyHint: true,
    destructiveHint: false,
    idempotentHint: true,
  },
};

// Tool implementation
export default async function add({ a, b }: InferSchema<typeof schema>) {
  return {
    content: [{ type: "text", text: String(a + b) }],
  };
}

Adding New Tools

To add a new tool:

  1. Create a new .ts file in the src/tools directory

  2. Export a schema object defining the tool parameters using Zod

  3. Export a metadata object with tool information

  4. Export a default function that implements the tool logic

Building for Production

To build your project for production:

npm run build
# or
yarn build
# or
pnpm build

This will compile your TypeScript code and output it to the dist directory.

Running the Server

You can run the server for the transport built with:

  • HTTP: node dist/http.js

  • STDIO: node dist/stdio.js

Given the selected transport method, you will have a custom start script added to the package.json file.

For HTTP:

npm run start-http
# or
yarn start-http
# or
pnpm start-http

For STDIO:

npm run start-stdio
# or
yarn start-stdio
# or
pnpm start-stdio

Authentication

All requests to the MCP server must include an API key in the x-api-key header. You can set your API key in the .env file using the YOUTUBE_MCP_API_KEY variable.

Example:

YOUTUBE_MCP_API_KEY=your-secret-key

Requests without a valid API key will be rejected with a 401 error and a friendly message.

How to use:

curl -H "x-api-key: your-secret-key" http://localhost:3002/mcp

Learn More

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A mock MCP server for testing MCP client implementations and development workflows. Supports tools, prompts, and resources across multiple transport protocols (stdio, HTTP, SSE).
    1
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server built with FastMCP that enables dynamic tool loading and configuration from individual Python files. It provides a flexible framework for automatically discovering, testing, and running tools via Stdio or HTTP transport modes.
    1
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server built with FastMCP that features dynamic tool loading and modular management via a dedicated tool directory. It supports both stdio and HTTP transport modes, enabling efficient development and deployment of custom MCP tools.
    -