MCP Framework
Marco MCP
Un marco de TypeScript para crear servidores de Protocolo de Contexto de Modelo (MCP).
Cambios respecto al original
Esta bifurcación (@ronangrant/mcp-framework) incluye las siguientes mejoras:
Se reemplazó el registro basado en archivos con un registro solo en la consola para lograr una mejor compatibilidad y confiabilidad.
Se eliminó la dependencia del sistema de archivos para los registros, eliminando así los errores ENOENT
Implementación de registro simplificada manteniendo la misma interfaz
Todos los registros ahora se envían a stderr a través de console.error()
Related MCP server: MCP Server Starter (TypeScript)
Instalación
npm install @ronangrant/mcp-frameworkUso
Crear un nuevo servidor MCP:
import { MCPServer } from '@ronangrant/mcp-framework';
const server = new MCPServer({
name: "my-server",
version: "1.0.0"
});
await server.start();Características
API fácil de usar para crear servidores MCP
Soporte integrado para herramientas, indicaciones y recursos
Sistema de registro simplificado con salida de consola
Compatibilidad total con TypeScript
Opciones de transporte flexibles
Licencia
Instituto Tecnológico de Massachusetts (MIT)
MCP-Framework es un marco para construir servidores de Protocolo de Contexto de Modelo (MCP) de manera elegante en TypeScript.
MCP-Framework le ofrece una arquitectura lista para usar, con descubrimiento automático basado en directorios para herramientas, recursos y solicitudes. Utilice nuestras potentes abstracciones de MCP para definir herramientas, recursos o solicitudes de forma elegante. Nuestra CLI facilita enormemente la creación de su propio servidor MCP.
Características
🛠️ Descubrimiento y carga automáticos de herramientas, recursos y avisos
Compatibilidad con múltiples transportes (stdio, SSE)
Desarrollo basado en TypeScript con seguridad de tipos completa
Desarrollado sobre el SDK oficial de MCP
Clases base fáciles de usar para herramientas, indicaciones y recursos
Autenticación lista para usar para puntos finales de SSE
Lea los documentos completos aquí
Creación de un repositorio con mcp-framework
Uso de la CLI (recomendado)
# Install the framework globally
npm install -g mcp-framework
# Create a new MCP server project
mcp create my-mcp-server
# Navigate to your project
cd my-mcp-server
# Your server is ready to use!Uso de la CLI
El marco proporciona una potente CLI para administrar sus proyectos de servidor MCP:
Creación de proyectos
# Create a new project
mcp create <your project name here>Agregar una herramienta
# Add a new tool
mcp add tool price-fetcherAgregar un mensaje
# Add a new prompt
mcp add prompt price-analysisAgregar un recurso
# Add a new prompt
mcp add resource market-dataFlujo de trabajo de desarrollo
Crea tu proyecto:
mcp create my-mcp-server
cd my-mcp-serverAgregue herramientas según sea necesario:
mcp add tool data-fetcher mcp add tool data-processor mcp add tool report-generatorConstruir:
npm run buildAgregar al cliente MCP (lea a continuación el ejemplo de Claude Desktop)
Uso con Claude Desktop
Desarrollo local
Agregue esta configuración a su archivo de configuración de Claude Desktop:
MacOS : `~/Biblioteca/Soporte de aplicaciones/Claude/claude_desktop_config.json` Windows : `%APPDATA%/Claude/claude_desktop_config.json`
{
"mcpServers": {
"${projectName}": {
"command": "node",
"args":["/absolute/path/to/${projectName}/dist/index.js"]
}
}
}Después de la publicación
Agregue esta configuración a su archivo de configuración de Claude Desktop:
MacOS : `~/Biblioteca/Soporte de aplicaciones/Claude/claude_desktop_config.json` Windows : `%APPDATA%/Claude/claude_desktop_config.json`
{
"mcpServers": {
"${projectName}": {
"command": "npx",
"args": ["${projectName}"]
}
}
}Construcción y pruebas
Realizar cambios en sus herramientas
Ejecute `npm run build` para compilar
El servidor cargará automáticamente sus herramientas al iniciarse
Inicio rápido
Creando una herramienta
import { MCPTool } from "mcp-framework";
import { z } from "zod";
interface ExampleInput {
message: string;
}
class ExampleTool extends MCPTool<ExampleInput> {
name = "example_tool";
description = "An example tool that processes messages";
schema = {
message: {
type: z.string(),
description: "Message to process",
},
};
async execute(input: ExampleInput) {
return `Processed: ${input.message}`;
}
}
export default ExampleTool;Configuración del servidor
import { MCPServer } from "mcp-framework";
const server = new MCPServer();
// OR (mutually exclusive!) with SSE transport
const server = new MCPServer({
transport: {
type: "sse",
options: {
port: 8080 // Optional (default: 8080)
}
}
});
// Start the server
await server.start();Configuración de transporte
Transporte stdio (predeterminado)
El transporte stdio se utiliza de forma predeterminada si no se proporciona ninguna configuración de transporte:
const server = new MCPServer();
// or explicitly:
const server = new MCPServer({
transport: { type: "stdio" }
});Transporte SSE
Para utilizar el transporte de eventos enviados por el servidor (SSE):
const server = new MCPServer({
transport: {
type: "sse",
options: {
port: 8080, // Optional (default: 8080)
endpoint: "/sse", // Optional (default: "/sse")
messageEndpoint: "/messages", // Optional (default: "/messages")
cors: {
allowOrigin: "*", // Optional (default: "*")
allowMethods: "GET, POST, OPTIONS", // Optional (default: "GET, POST, OPTIONS")
allowHeaders: "Content-Type, Authorization, x-api-key", // Optional (default: "Content-Type, Authorization, x-api-key")
exposeHeaders: "Content-Type, Authorization, x-api-key", // Optional (default: "Content-Type, Authorization, x-api-key")
maxAge: "86400" // Optional (default: "86400")
}
}
}
});Configuración de CORS
El transporte SSE admite una configuración flexible de CORS. De forma predeterminada, utiliza configuraciones permisivas, adecuadas para el desarrollo. Para producción, debe configurar CORS según sus requisitos de seguridad:
const server = new MCPServer({
transport: {
type: "sse",
options: {
// Restrict to specific origin
cors: {
allowOrigin: "https://myapp.com",
allowMethods: "GET, POST",
allowHeaders: "Content-Type, Authorization",
exposeHeaders: "Content-Type, Authorization",
maxAge: "3600"
}
}
}
});
// Or with multiple allowed origins
const server = new MCPServer({
transport: {
type: "sse",
options: {
cors: {
allowOrigin: "https://app1.com, https://app2.com",
allowMethods: "GET, POST, OPTIONS",
allowHeaders: "Content-Type, Authorization, Custom-Header",
exposeHeaders: "Content-Type, Authorization",
maxAge: "86400"
}
}
}
});Autenticación
El marco MCP ofrece autenticación opcional para los endpoints SSE. Puede elegir entre autenticación mediante JWT y clave API, o implementar su propio proveedor de autenticación personalizado.
Autenticación JWT
import { MCPServer, JWTAuthProvider } from "mcp-framework";
import { Algorithm } from "jsonwebtoken";
const server = new MCPServer({
transport: {
type: "sse",
options: {
auth: {
provider: new JWTAuthProvider({
secret: process.env.JWT_SECRET,
algorithms: ["HS256" as Algorithm], // Optional (default: ["HS256"])
headerName: "Authorization" // Optional (default: "Authorization")
}),
endpoints: {
sse: true, // Protect SSE endpoint (default: false)
messages: true // Protect message endpoint (default: true)
}
}
}
}
});Los clientes deben incluir un token JWT válido en el encabezado de autorización:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...Autenticación de clave API
import { MCPServer, APIKeyAuthProvider } from "mcp-framework";
const server = new MCPServer({
transport: {
type: "sse",
options: {
auth: {
provider: new APIKeyAuthProvider({
keys: [process.env.API_KEY],
headerName: "X-API-Key" // Optional (default: "X-API-Key")
})
}
}
}
});Los clientes deben incluir una clave API válida en el encabezado X-API-Key:
X-API-Key: your-api-keyAutenticación personalizada
Puede implementar su propio proveedor de autenticación implementando la interfaz AuthProvider :
import { AuthProvider, AuthResult } from "mcp-framework";
import { IncomingMessage } from "node:http";
class CustomAuthProvider implements AuthProvider {
async authenticate(req: IncomingMessage): Promise<boolean | AuthResult> {
// Implement your custom authentication logic
return true;
}
getAuthError() {
return {
status: 401,
message: "Authentication failed"
};
}
}Licencia
Instituto Tecnológico de Massachusetts (MIT)
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A Model Context Protocol server for Wix AI tools
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA TypeScript implementation of a Model Context Protocol server that provides a frictionless framework for developers to build and deploy AI tools and prompts, focusing on developer experience with zero boilerplate and automatic tool registration.2,01314MIT
- FlicenseNot gradedqualityDmaintenanceA minimal, production-ready TypeScript starter template for building Model Context Protocol (MCP) servers with auto-loading architecture for tools, resources, and prompts. Provides boilerplate code, generators, and examples to quickly create MCP servers that can connect AI applications to any data source or tool.-
- AlicenseNot gradedqualityDmaintenanceA TypeScript framework for building Model Context Protocol servers with a decorator-based API, enabling custom tools, resources, and prompts for AI applications.22MIT
- AlicenseNot gradedqualityAmaintenanceA TypeScript toolkit for building Model Context Protocol servers with tools, prompts, resources, middleware, and testing helpers, reducing boilerplate.146MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ronangrant/mcp-framework'
If you have feedback or need assistance with the MCP directory API, please join our Discord server