About App
App is an MCP server in the Developer Tools category: mCP Server Application with RAG.
The repository has 22 stars and 0 forks.
Install
claude mcp add app -- npx -y @renderify/mcp-appnpx -y @renderify/mcp-appThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about App
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
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.
Project Structure
This project uses the structured approach where tools, prompts, and resources are automatically discovered from their respective directories:
src/tools- Tool definitionssrc/prompts- Prompt templatessrc/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:
- Create a new
.tsfile in thesrc/toolsdirectory - Export a
schemaobject defining the tool parameters using Zod - Export a
metadataobject with tool information - Export a default function that implements the tool logic
Adding New Prompts
To add a new prompt:
- Create a new
.tsfile in thesrc/promptsdirectory - Export a
schemaobject defining the prompt parameters using Zod - Export a
metadataobject with prompt information and role - Export a default function that returns the prompt text
Adding New Resources
To add a new resource:
- Create a new
.tsfile in thesrc/resourcesdirectory - Use folder structure to define the URI (e.g.,
(users)/[userId]/profile.ts→users://{userId}/profile) - Export a
schemaobject for dynamic parameters (optional for static resources) - Export a
metadataobject with resource information - 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
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.