MCP Turistik服务器(服务器/)
概述
该文件夹包含 servidor MCP(模型上下文协议)。您的角色是公开工具和UI资源,以便LLM代理可以查询Turistik服务数据并通过STDIO和HTTP/SSE进行操作。
______________________________________________________________________
快速结构
src/index.ts:服务器入口点(工具注册、UI资源和SSE端点)。src/services/:整合(WooCommerce,Ozypark)和帮助者。src/services/sqlServices/:SQL连接和实用程序。assets/:作为UI资源注入的小部件包(JS/CSS)。build/:运行时退出TypeScriptnpm run build.
______________________________________________________________________
要求
- Node.js+npm
- TypeScript(通过开发依赖关系)
- 访问外部服务(WooCommerce、Ozypark、SQL)
______________________________________________________________________
可用脚本
npm run build # Compila TypeScript a build/
npm run dev # Ejecuta con tsx watch
npm run run # Ejecuta un archivo TS con tsx
npm run test:mcpapi
npm run test:woo
npm run woo
npm run ozyPark______________________________________________________________________
在本地执行
从这个文件夹:
npm install
npm run dev服务器启动:
- 用于本地MCP集成的STDIO传输
- 带有SSE的HTTP
http://localhost:8000/mcp - 邮件
http://localhost:8000/mcp/message?sessionId=...
______________________________________________________________________
用MCP检查员快速测试
- 把你放在
server/ - 执行:
npx @modelcontextprotocol/inspector- 检查员将启动UI并连接到服务器的STDIO。
______________________________________________________________________
上传图像到Docker Hub(快速)
自从 server/:
docker login
docker build -t /: .
docker push /:示例:
docker build -t danieldmascaro/mcp:0.0.3 .
docker push danieldmascaro/mcp:0.0.3如果你建立在苹果硅,力量 linux/amd64:
docker buildx build --platform linux/amd64 -t /: --push .______________________________________________________________________
Widget UI(塔旋转木马)
服务器将UI资源注入:
ui://widget/carrusel_tours.html该资源构建于:
server/assets/index.jsserver/assets/index.css
______________________________________________________________________
MCP工具(在服务器上注册)
展出工具的完整列表 src/index.ts:
TicketsTeleferico:缆车票(Ozypark)的价格和可用性。CuposTeleferico:按日期/服务/原产地(Ozypark)划分的可用配额。WooPorId:按ID获取WooCommerce产品的基本数据(包括服务ID的示例)。ListarExcursionesWoo:按名称和价格范围过滤WooCommerce短途旅行列表(使用UI小部件)。InfoHopOn:跳上跳下(SQL)总线的站点信息。InfoContacto:索赔、合作、团体、公司、教育访问和生日(SQL)的联系人。InfoAtractivosCerro:圣克里斯托瓦尔山(SQL)的景点。TicketsFunicular:缆车票价和门票信息(SQL)。ListarBusHopOnHopOffWoo:从WooCommerce跳上跳下的门票信息/价格。
______________________________________________________________________
环境变量
预期文件 .env 使用这些键(没有硬编码值):
OZY_BASE_URL
OZY_CLIENT_ID
GRANT_TYPE
OZY_CLIENT_SECRET
OZY_SCOPE
SQL_SERVER
SQL_DATABASE
SQL_USER
SQL_SECRET
MCP_API_URL
WC_BASE_URL
WC_CONSUMER_KEY
WC_CONSUMER_SECRET
MCP_CHANNEL_TOKEN
MCP_STDIO_ENABLED
PORT______________________________________________________________________
安全层(承载器令牌)
端点MCP HTTP验证 持有者代币 en-el标题 Authorization. 如果不发送或不匹配 MCP_CHANNEL_TOKEN,服务器响应 401未经授权.
标题示例:
Authorization: Bearer 注释 :
- 在生产中,定义
MCP_CHANNEL_TOKEN作为平台上的环境变量(例如,Azure Container应用程序)。 - 没有令牌,终结点MCP不接受请求。
______________________________________________________________________
STDIO的MCP(检查员)
要启用/禁用STDIO传输:
MCP_STDIO_ENABLED=true # default
MCP_STDIO_ENABLED=false # deshabilita STDIO______________________________________________________________________
SQL(随上随下)
server/src/services/sqlServices/db_utils.ts 查询表 ia.paradas_hopon:
- 阅读专栏:
id,nombre,descripcion,comuna,direccion - 查询主体:
SELECT id, nombre, descripcion, comuna, direccion FROM ia.paradas_hopon ORDER BY id ASC;
- Asociada工具:
InfoHopOn英语server/src/index.ts
______________________________________________________________________
注释
- MCP生态系统变化频繁;如果存在兼容性错误,请检查SDK更改。
