using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using LinkToolAddin.server; using log4net; using Newtonsoft.Json; namespace LinkToolAddin.host { public class CallMcp { private static readonly ILog log = LogManager.GetLogger(typeof(CallMcp)); public static string CallInnerMcpTool(string jsonRpcString) { log.Info("通过反射调用内部MCP工具"); var jsonRpcEntity = JsonConvert.DeserializeObject(jsonRpcString); Type type = Type.GetType("LinkToolAddin.client."+jsonRpcEntity.Method.Split('.')[0]); MethodInfo method = type.GetMethod(jsonRpcEntity.Method.Split('.')[1],BindingFlags.Public | BindingFlags.Static); string result = (string)method.Invoke(null, new object[] { jsonRpcEntity.Params }); // 将结果序列化为 JSON 字符串 return result; } } }