Provides integration with YouTube's services, enabling programmatic interaction with YouTube content and features through authenticated API requests.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@XMCP Applicationadd 15 and 27"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
xmcp Application
This project was created with create-xmcp-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm devThis will start the MCP server with the selected transport method.
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:
Create a new
.tsfile in thesrc/toolsdirectoryExport a
schemaobject defining the tool parameters using ZodExport a
metadataobject with tool informationExport 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 buildThis 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.jsSTDIO:
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-httpFor STDIO:
npm run start-stdio
# or
yarn start-stdio
# or
pnpm start-stdioAuthentication
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-keyRequests 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