using System.Collections.Generic; using LinkToolAddin.host.mcp; namespace LinkToolAddin.host; public class McpServerList { private Dictionary servers = new Dictionary(); public McpServerList() { servers.Add("gaode",new SseMcpServer { Name = "gaode", Type = "sse", Description = "高德地图API", IsActive = true, BaseUrl = "https://mcp.amap.com/sse?key=ed418512c94ade8f83d42c37b77d2bb2", Headers = new Dictionary() { {"Content-Type","application/json"} } }); servers.Add("ArcGisPro", new InnerMcpServer { Name = "ArcGisPro", Type = "inner", Description = "可以调用arcgis的地理处理工具或执行python代码等", IsActive = true }); servers.Add("KnowledgeBase", new InnerMcpServer { Name = "KnowledgeBase", Type = "inner", Description = "可以调用进行查询知识库,获取相关参考信息。有地理信息的相关案例步骤参考以及Arcgis Pro的工具详细信息", IsActive = true }); servers.Add("filesystem", new StdioMcpServer() { Name = "filesystem", Type = "stdio", Command = "npx", Args = new List() { "-y", "@modelcontextprotocol/server-filesystem", "F:\\secondsemester\\linktool\\test\\LinkTool0607\\LinkTool0607.gdb" } }); //servers.Add("fetch", new StdioMcpServer() //{ // Name = "fetch", // Type = "stdio", // Command = "uvx", // Args = new List() // { // "mcp-server-fetch" // } //}); servers.Add("bing-search", new StdioMcpServer() { Name = "bing-search", Type = "stdio", Command = "npx", Args = new List() { "bing-cn-mcp" } }); servers.Add("mcp-python-interpreter", new StdioMcpServer() { Name = "mcp-python-interpreter", Type = "stdio", Command = "uvx", Args = new List() { "--native-tls", "mcp-python-interpreter", "--dir", "F:\\secondsemester\\linktool\\test\\LinkTool0607\\LinkTool0607.gdb", "--python-path", "C:\\Program Files\\ArcGIS\\Pro\\bin\\Python\\envs\\custom\\python.exe" } }); } public McpServer GetServer(string name) { if (servers.ContainsKey(name)) { return servers[name]; } else { return null; } } public List GetAllServers() { List serverList = new List(); foreach (var server in servers) { serverList.Add(server.Value); } return serverList; } }