谢亚昕 1 month ago
parent
commit
2b2f0d7ffd
  1. 17
      .cursor/mcp.json
  2. 2
      readme.md
  3. 51
      weather/server-sse.js

17
.cursor/mcp.json

@ -0,0 +1,17 @@
{
"mcpServers": {
"天气": {
"url": "http://localhost:3001/sse",
"env": {}
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"D:/@code/demo/x6-demo",
"D:/@code/demo/x6-demo"
]
}
}
}

2
readme.md

@ -12,6 +12,8 @@
- https://mcpservers.org/ - https://mcpservers.org/
- https://www.npmjs.com/package/@modelcontextprotocol/sdk#server-capabilities - https://www.npmjs.com/package/@modelcontextprotocol/sdk#server-capabilities
- https://geekdaxue.co/read/MCP-doc/resources
{ {
"mcpServers": { "mcpServers": {

51
weather/server-sse.js

@ -18,16 +18,55 @@ const server = new McpServer(
} }
); );
server.tool("get-weather", { state: z.string() }, async ({ state }) => { server.tool(
const url = `https://cn.apihz.cn/api/tianqi/tqyb.php?id=88888888&key=88888888&sheng=四川&place=绵阳`; "get-weather",
{ province: z.string(), city: z.string() },
async ({ province, city }) => {
const url = `https://cn.apihz.cn/api/tianqi/tqyb.php?id=88888888&key=88888888&sheng=${province}&place=${city}`;
const data = await fetch(url).then((res) => res.json()); const data = await fetch(url).then((res) => res.json());
// 如果返回的code不为200,说明获取天气失败,返回错误信息。
if (data.code !== 200) {
return {
content: [
{
type: "text",
text: "获取天气失败",
},
],
};
}
if (!data) { return {
return "无法获取天气"; content: [
{
type: "text",
text: JSON.stringify(data, null, 2),
},
],
};
} }
);
return data; server.prompt(
}); "get-weather-prompt",
{
province: z.string(),
city: z.string(),
},
async ({ province, city }) => {
return {
messages: [
{
role: "user",
content: {
type: "text",
text: `请帮我查询${province}${city}市的天气情况,包括温度、湿度、风向等信息。请用中文回答。`,
},
},
],
};
}
);
const app = express(); const app = express();
let transport; let transport;

Loading…
Cancel
Save