Skip to main content
Glama
abcprintf

xmcp Application

by abcprintf

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 dev

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

Related MCP server: MCP Inspector Server

Project Structure

This project uses the structured approach where tools, prompts, and resources are automatically discovered from their respective directories:

  • src/tools - Tool definitions

  • src/prompts - Prompt templates

  • src/resources - Resource handlers

Tools

Each tool is defined in its own file with the following structure:

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

export const schema = {
  name: z.string().describe("The name of the user to greet"),
};

export const metadata: ToolMetadata = {
  name: "greet",
  description: "Greet the user",
  annotations: {
    title: "Greet the user",
    readOnlyHint: true,
    destructiveHint: false,
    idempotentHint: true,
  },
};

export default function greet({ name }: InferSchema<typeof schema>) {
  return `Hello, ${name}!`;
}

Prompts

Prompts are template definitions for AI interactions:

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

export const schema = {
  code: z.string().describe("The code to review"),
};

export const metadata: PromptMetadata = {
  name: "review-code",
  title: "Review Code",
  description: "Review code for best practices and potential issues",
  role: "user",
};

export default function reviewCode({ code }: InferSchema<typeof schema>) {
  return `Please review this code: ${code}`;
}

Resources

Resources provide data or content with URI-based access:

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

export const schema = {
  userId: z.string().describe("The ID of the user"),
};

export const metadata: ResourceMetadata = {
  name: "user-profile",
  title: "User Profile",
  description: "User profile information",
};

export default function handler({ userId }: InferSchema<typeof schema>) {
  return `Profile data for user ${userId}`;
}

Adding New Components

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

Adding New Prompts

To add a new prompt:

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

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

  3. Export a metadata object with prompt information and role

  4. Export a default function that returns the prompt text

Adding New Resources

To add a new resource:

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

  2. Use folder structure to define the URI (e.g., (users)/[userId]/profile.tsusers://{userId}/profile)

  3. Export a schema object for dynamic parameters (optional for static resources)

  4. Export a metadata object with resource information

  5. Export a default function that returns the resource content

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

Learn More

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    A starter template for building MCP servers that can integrate with Claude, Cursor, or other MCP-compatible AI assistants to create custom tools, resource providers, and prompt templates.
    Last updated
    2
  • F
    license
    -
    quality
    D
    maintenance
    A basic MCP server template that provides a foundation for building custom tools, resources, and prompts. Serves as a starting point for developers to create their own MCP server functionality.
    Last updated
  • A
    license
    -
    quality
    D
    maintenance
    A template MCP server created with xmcp that provides a structured framework for building tools, prompts, and resources. Includes example implementations for greeting users, code review prompts, and user profile resources with automatic discovery from organized directories.
    Last updated
    271
    MIT
  • F
    license
    -
    quality
    -
    maintenance
    A template MCP server created with create-xmcp-app that demonstrates structured organization of tools, prompts, and resources with automatic discovery from their respective directories.
    Last updated
    1

View all related MCP servers

Related MCP Connectors

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, P…

  • A MCP server built for developers enabling Git based project management with project and personal…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abcprintf/mcp-server-app'

If you have feedback or need assistance with the MCP directory API, please join our Discord server