Skip to main content
Glama
vmridul

my-server

by vmridul

my-server

Un servidor MCP con un widget meteorológico. server.tool({ widget: { dir: "weather" } }) apunta a src/widgets/weather/ (React). mcpfy-sdk lo empaqueta: no server.widget(), ni archivo HTML, ni prompt/recurso necesario.

La herramienta weather obtiene la temperatura de Open-Meteo en el servidor. La consulta en el widget llama a esa herramienta a través del host (callTool): el iframe no hace fetch de la API.

Si main.tsx más adelante hace fetch de otro origen, descomenta widget.csp.connectDomains en src/server.ts. ChatGPT y Claude lo aplican; Inspector normalmente no lo hace.

Ejecución

Local (inicia el servidor MCP; los widgets se empaquetan al escuchar — sin compilación previa):

npm run dev          # default transport: http
npm run dev:stdio
npm run dev:http     # HTTP on port 4000

Producción / ChatGPT (los iframes no pueden usar un bundle dev de una sola vez de la misma manera):

npm run build        # mcpfy build && tsc
npm start

Related MCP server: EightyAndSunny

Úsalo en un host MCP

{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["mcpfy", "dev", "--", "--stdio"],
      "cwd": "/absolute/path/to/this-project"
    }
  }
}

Próximos pasos

  • UI: src/widgets/weather/main.tsx (hooks de mcpfy-sdk/widget)

  • Herramientas sin UI: omite widget en server.tool()

  • Documentación de mcpfy

Related MCP Connectors

Related MCP Servers