@elizaos/plugin-mcp 2.0.0-alpha.6 → 2.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +54 -11
- package/dist/cjs/index.js.map +5 -5
- package/dist/node/actions/callToolAction.d.ts.map +1 -1
- package/dist/node/actions/readResourceAction.d.ts.map +1 -1
- package/dist/node/index.js +54 -11
- package/dist/node/index.js.map +5 -5
- package/dist/node/provider.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/cjs/index.cjs
CHANGED
|
@@ -1385,12 +1385,33 @@ var callToolAction = {
|
|
|
1385
1385
|
"INVOKE_MCP_TOOL"
|
|
1386
1386
|
],
|
|
1387
1387
|
description: "Calls a tool from an MCP server to perform a specific task",
|
|
1388
|
-
validate: async (runtime,
|
|
1389
|
-
const
|
|
1390
|
-
|
|
1388
|
+
validate: async (runtime, message, state, options) => {
|
|
1389
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
1390
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
1391
|
+
const __avKeywords = ["call", "mcp", "tool"];
|
|
1392
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
1393
|
+
const __avRegex = /\b(?:call|mcp|tool)\b/i;
|
|
1394
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
1395
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
1396
|
+
const __avExpectedSource = "";
|
|
1397
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
1398
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
1399
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
1400
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
1401
|
+
return false;
|
|
1402
|
+
}
|
|
1403
|
+
const __avLegacyValidate = async (runtime2, _message, _state) => {
|
|
1404
|
+
const mcpService = runtime2.getService(MCP_SERVICE_NAME);
|
|
1405
|
+
if (!mcpService)
|
|
1406
|
+
return false;
|
|
1407
|
+
const servers = mcpService.getServers();
|
|
1408
|
+
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.tools && server.tools.length > 0);
|
|
1409
|
+
};
|
|
1410
|
+
try {
|
|
1411
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
1412
|
+
} catch {
|
|
1391
1413
|
return false;
|
|
1392
|
-
|
|
1393
|
-
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.tools && server.tools.length > 0);
|
|
1414
|
+
}
|
|
1394
1415
|
},
|
|
1395
1416
|
handler: async (runtime, message, _state, _options, callback) => {
|
|
1396
1417
|
const composedState = await runtime.composeState(message, ["RECENT_MESSAGES", "MCP"]);
|
|
@@ -1528,12 +1549,33 @@ var readResourceAction = {
|
|
|
1528
1549
|
"ACCESS_MCP_RESOURCE"
|
|
1529
1550
|
],
|
|
1530
1551
|
description: "Reads a resource from an MCP server",
|
|
1531
|
-
validate: async (runtime,
|
|
1532
|
-
const
|
|
1533
|
-
|
|
1552
|
+
validate: async (runtime, message, state, options) => {
|
|
1553
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
1554
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
1555
|
+
const __avKeywords = ["read", "mcp", "resource"];
|
|
1556
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
1557
|
+
const __avRegex = /\b(?:read|mcp|resource)\b/i;
|
|
1558
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
1559
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
1560
|
+
const __avExpectedSource = "";
|
|
1561
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
1562
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
1563
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
1564
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
1565
|
+
return false;
|
|
1566
|
+
}
|
|
1567
|
+
const __avLegacyValidate = async (runtime2, _message, _state) => {
|
|
1568
|
+
const mcpService = runtime2.getService(MCP_SERVICE_NAME);
|
|
1569
|
+
if (!mcpService)
|
|
1570
|
+
return false;
|
|
1571
|
+
const servers = mcpService.getServers();
|
|
1572
|
+
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.resources && server.resources.length > 0);
|
|
1573
|
+
};
|
|
1574
|
+
try {
|
|
1575
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
1576
|
+
} catch {
|
|
1534
1577
|
return false;
|
|
1535
|
-
|
|
1536
|
-
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.resources && server.resources.length > 0);
|
|
1578
|
+
}
|
|
1537
1579
|
},
|
|
1538
1580
|
handler: async (runtime, message, _state, _options, callback) => {
|
|
1539
1581
|
const composedState = await runtime.composeState(message, ["RECENT_MESSAGES", "MCP"]);
|
|
@@ -1638,6 +1680,7 @@ var readResourceAction = {
|
|
|
1638
1680
|
var provider = {
|
|
1639
1681
|
name: "MCP",
|
|
1640
1682
|
description: "Information about connected MCP servers, tools, and resources",
|
|
1683
|
+
dynamic: true,
|
|
1641
1684
|
get: async (runtime, _message, _state) => {
|
|
1642
1685
|
const mcpService = runtime.getService(MCP_SERVICE_NAME);
|
|
1643
1686
|
if (!mcpService) {
|
|
@@ -2067,4 +2110,4 @@ var mcpPlugin = {
|
|
|
2067
2110
|
};
|
|
2068
2111
|
var src_default = mcpPlugin;
|
|
2069
2112
|
|
|
2070
|
-
//# debugId=
|
|
2113
|
+
//# debugId=1F147A30DFB3603364756E2164756E21
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"export const toolSelectionNameSchema = {\n type: \"object\",\n required: [\"serverName\", \"toolName\"],\n properties: {\n serverName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"serverName must not be empty\",\n },\n toolName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"toolName must not be empty\",\n },\n reasoning: {\n type: \"string\",\n },\n noToolAvailable: {\n type: \"boolean\",\n },\n },\n} as const;\n\nexport interface ToolSelectionName {\n readonly serverName: string;\n readonly toolName: string;\n readonly reasoning?: string;\n readonly noToolAvailable?: boolean;\n}\n\nexport const toolSelectionArgumentSchema = {\n type: \"object\",\n required: [\"toolArguments\"],\n properties: {\n toolArguments: {\n type: \"object\",\n },\n },\n} as const;\n\nexport interface ToolSelectionArgument {\n readonly toolArguments: Readonly<Record<string, unknown>>;\n}\n\nexport const ResourceSelectionSchema = {\n type: \"object\",\n required: [\"serverName\", \"uri\"],\n properties: {\n serverName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"serverName must not be empty\",\n },\n uri: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"uri must not be empty\",\n },\n reasoning: {\n type: \"string\",\n },\n noResourceAvailable: {\n type: \"boolean\",\n },\n },\n} as const;\n\nexport interface ResourceSelection {\n readonly serverName: string;\n readonly uri: string;\n readonly reasoning?: string;\n readonly noResourceAvailable?: boolean;\n}\n\nexport function isToolSelectionName(value: unknown): value is ToolSelectionName {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const obj = value as Record<string, unknown>;\n return (\n typeof obj.serverName === \"string\" &&\n obj.serverName.length > 0 &&\n typeof obj.toolName === \"string\" &&\n obj.toolName.length > 0\n );\n}\n\nexport function isToolSelectionArgument(value: unknown): value is ToolSelectionArgument {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const obj = value as Record<string, unknown>;\n return typeof obj.toolArguments === \"object\" && obj.toolArguments !== null;\n}\n\nexport function isResourceSelection(value: unknown): value is ResourceSelection {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const obj = value as Record<string, unknown>;\n return (\n typeof obj.serverName === \"string\" &&\n obj.serverName.length > 0 &&\n typeof obj.uri === \"string\" &&\n obj.uri.length > 0\n );\n}\n",
|
|
20
20
|
"import type { State } from \"@elizaos/core\";\nimport {\n type McpProviderData,\n type McpServerInfo,\n ResourceSelectionSchema,\n type ValidationResult,\n} from \"../types\";\nimport { validateJsonSchema } from \"./json\";\nimport {\n type ResourceSelection,\n type ToolSelectionArgument,\n type ToolSelectionName,\n toolSelectionArgumentSchema,\n toolSelectionNameSchema,\n} from \"./schemas\";\n\nexport type { ResourceSelection } from \"./schemas\";\n\nexport interface ToolSelection {\n readonly serverName: string;\n readonly toolName: string;\n readonly arguments: Readonly<Record<string, unknown>>;\n readonly reasoning?: string;\n readonly noToolAvailable?: boolean;\n}\n\nexport function validateToolSelectionName(\n parsed: unknown,\n state: State\n): ValidationResult<ToolSelectionName> {\n const basicResult = validateJsonSchema<ToolSelectionName>(parsed, toolSelectionNameSchema);\n if (basicResult.success === false) {\n return { success: false, error: basicResult.error };\n }\n\n const data = basicResult.data;\n const mcpData = (state.values.mcp ?? {}) as Record<string, McpServerInfo>;\n const server = mcpData[data.serverName];\n\n if (!server || server.status !== \"connected\") {\n return {\n success: false,\n error: `Server \"${data.serverName}\" not found or not connected`,\n };\n }\n\n const toolInfo = server.tools?.[data.toolName];\n if (!toolInfo) {\n return {\n success: false,\n error: `Tool \"${data.toolName}\" not found on server \"${data.serverName}\"`,\n };\n }\n\n return { success: true, data };\n}\n\nexport function validateToolSelectionArgument(\n parsed: unknown,\n toolInputSchema: Readonly<Record<string, unknown>>\n): ValidationResult<ToolSelectionArgument> {\n const basicResult = validateJsonSchema<ToolSelectionArgument>(\n parsed,\n toolSelectionArgumentSchema\n );\n if (basicResult.success === false) {\n return { success: false, error: basicResult.error };\n }\n\n const data = basicResult.data;\n const validationResult = validateJsonSchema(data.toolArguments, toolInputSchema);\n\n if (validationResult.success === false) {\n return {\n success: false,\n error: `Invalid arguments: ${validationResult.error}`,\n };\n }\n\n return { success: true, data };\n}\n\nexport function validateResourceSelection(selection: unknown): ValidationResult<ResourceSelection> {\n return validateJsonSchema<ResourceSelection>(selection, ResourceSelectionSchema);\n}\n\ninterface ToolDescription {\n readonly description?: string;\n}\n\nexport function createToolSelectionFeedbackPrompt(\n originalResponse: string,\n errorMessage: string,\n composedState: State,\n userMessage: string\n): string {\n let toolsDescription = \"\";\n const mcpData = composedState.values.mcp as Record<string, McpProviderData[string]> | undefined;\n\n if (mcpData) {\n for (const [serverName, server] of Object.entries(mcpData)) {\n if (server.status !== \"connected\") continue;\n\n const tools = server.tools as Record<string, ToolDescription> | undefined;\n if (tools) {\n for (const [toolName, tool] of Object.entries(tools)) {\n toolsDescription += `Tool: ${toolName} (Server: ${serverName})\\n`;\n toolsDescription += `Description: ${tool.description ?? \"No description available\"}\\n\\n`;\n }\n }\n }\n }\n\n return createFeedbackPrompt(\n originalResponse,\n errorMessage,\n \"tool\",\n toolsDescription,\n userMessage\n );\n}\n\ninterface ResourceDescription {\n readonly description?: string;\n readonly name?: string;\n}\n\nexport function createResourceSelectionFeedbackPrompt(\n originalResponse: string,\n errorMessage: string,\n composedState: State,\n userMessage: string\n): string {\n let resourcesDescription = \"\";\n const mcpData = composedState.values.mcp as Record<string, McpProviderData[string]> | undefined;\n\n if (mcpData) {\n for (const [serverName, server] of Object.entries(mcpData)) {\n if (server.status !== \"connected\") continue;\n\n const resources = server.resources as Record<string, ResourceDescription> | undefined;\n if (resources) {\n for (const [uri, resource] of Object.entries(resources)) {\n resourcesDescription += `Resource: ${uri} (Server: ${serverName})\\n`;\n resourcesDescription += `Name: ${resource.name ?? \"No name available\"}\\n`;\n resourcesDescription += `Description: ${\n resource.description ?? \"No description available\"\n }\\n\\n`;\n }\n }\n }\n }\n\n return createFeedbackPrompt(\n originalResponse,\n errorMessage,\n \"resource\",\n resourcesDescription,\n userMessage\n );\n}\n\nfunction createFeedbackPrompt(\n originalResponse: string,\n errorMessage: string,\n itemType: string,\n itemsDescription: string,\n userMessage: string\n): string {\n return `Error parsing JSON: ${errorMessage}\n\nYour original response:\n${originalResponse}\n\nPlease try again with valid JSON for ${itemType} selection.\nAvailable ${itemType}s:\n${itemsDescription}\n\nUser request: ${userMessage}`;\n}\n",
|
|
21
21
|
"import {\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport { DEFAULT_MAX_RETRIES, type McpSettings, type ValidationResult } from \"../types\";\nimport { parseJSON } from \"./json\";\n\nexport type Input = string | Record<string, unknown>;\n\ntype CreateFeedbackPromptFn = (\n originalResponse: Input,\n errorMessage: string,\n composedState: State,\n userMessage: string\n) => string;\n\nexport interface WithModelRetryOptions<T> {\n readonly runtime: IAgentRuntime;\n readonly message: Memory;\n readonly state: State;\n readonly input: Input;\n readonly validationFn: (data: Input) => ValidationResult<T>;\n readonly createFeedbackPromptFn: CreateFeedbackPromptFn;\n readonly callback?: HandlerCallback;\n readonly failureMsg?: string;\n readonly retryCount?: number;\n}\n\nexport async function withModelRetry<T>({\n runtime,\n message,\n state,\n callback,\n input,\n validationFn,\n createFeedbackPromptFn,\n failureMsg,\n retryCount = 0,\n}: WithModelRetryOptions<T>): Promise<T | null> {\n const maxRetries = getMaxRetries(runtime);\n\n const parsedJson = typeof input === \"string\" ? parseJSON<Record<string, unknown>>(input) : input;\n\n const validationResult = validationFn(parsedJson);\n\n if (validationResult.success) {\n return validationResult.data;\n }\n\n const errorMessage = (validationResult as { success: false; error: string }).error;\n\n if (retryCount < maxRetries) {\n const feedbackPrompt: string = createFeedbackPromptFn(\n input,\n errorMessage,\n state,\n message.content.text ?? \"\"\n );\n\n const retrySelection = (await runtime.useModel(ModelType.OBJECT_LARGE, {\n prompt: feedbackPrompt,\n })) as Record<string, unknown>;\n\n return withModelRetry({\n runtime,\n input: retrySelection,\n validationFn,\n message,\n state,\n createFeedbackPromptFn,\n callback,\n failureMsg,\n retryCount: retryCount + 1,\n });\n }\n\n if (callback && failureMsg) {\n await callback({\n text: failureMsg,\n actions: [\"REPLY\"],\n });\n }\n\n return null;\n}\n\nfunction getMaxRetries(runtime: IAgentRuntime): number {\n const rawSettings = runtime.getSetting(\"mcp\");\n\n if (rawSettings && typeof rawSettings === \"object\") {\n const settings = rawSettings as McpSettings;\n if (typeof settings.maxRetries === \"number\" && settings.maxRetries >= 0) {\n return settings.maxRetries;\n }\n }\n\n return DEFAULT_MAX_RETRIES;\n}\n",
|
|
22
|
-
"import type {\n Action,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { MCP_SERVICE_NAME, type McpServer } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport { handleNoToolAvailable } from \"../utils/handler\";\nimport { handleToolResponse, processToolResult } from \"../utils/processing\";\nimport { createToolSelectionArgument, createToolSelectionName } from \"../utils/selection\";\n\nexport const callToolAction: Action = {\n name: \"CALL_MCP_TOOL\",\n similes: [\n \"CALL_TOOL\",\n \"CALL_MCP_TOOL\",\n \"USE_TOOL\",\n \"USE_MCP_TOOL\",\n \"EXECUTE_TOOL\",\n \"EXECUTE_MCP_TOOL\",\n \"RUN_TOOL\",\n \"RUN_MCP_TOOL\",\n \"INVOKE_TOOL\",\n \"INVOKE_MCP_TOOL\",\n ],\n description: \"Calls a tool from an MCP server to perform a specific task\",\n\n validate: async (runtime:
|
|
23
|
-
"import {\n type Action,\n type ActionResult,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { resourceSelectionTemplate } from \"../templates/resourceSelectionTemplate\";\nimport { MCP_SERVICE_NAME, type McpServer, type McpServerInfo } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport {\n handleResourceAnalysis,\n processResourceResult,\n sendInitialResponse,\n} from \"../utils/processing\";\nimport type { ResourceSelection } from \"../utils/schemas\";\nimport {\n createResourceSelectionFeedbackPrompt,\n validateResourceSelection,\n} from \"../utils/validation\";\nimport { withModelRetry } from \"../utils/wrapper\";\n\nfunction createResourceSelectionPrompt(composedState: State, userMessage: string): string {\n const mcpData = (composedState.values.mcp ?? {}) as Record<string, McpServerInfo>;\n const serverNames = Object.keys(mcpData);\n\n let resourcesDescription = \"\";\n for (const serverName of serverNames) {\n const server = mcpData[serverName];\n if (server.status !== \"connected\") continue;\n\n const resourceUris = Object.keys(server.resources ?? {});\n for (const uri of resourceUris) {\n const resource = server.resources[uri];\n resourcesDescription += `Resource: ${uri} (Server: ${serverName})\\n`;\n resourcesDescription += `Name: ${resource.name ?? \"No name available\"}\\n`;\n resourcesDescription += `Description: ${\n resource.description ?? \"No description available\"\n }\\n`;\n resourcesDescription += `MIME Type: ${resource.mimeType ?? \"Not specified\"}\\n\\n`;\n }\n }\n\n const enhancedState: State = {\n ...composedState,\n values: {\n ...composedState.values,\n resourcesDescription,\n userMessage,\n },\n };\n\n return composePromptFromState({\n state: enhancedState,\n template: resourceSelectionTemplate,\n });\n}\n\nexport const readResourceAction: Action = {\n name: \"READ_MCP_RESOURCE\",\n similes: [\n \"READ_RESOURCE\",\n \"READ_MCP_RESOURCE\",\n \"GET_RESOURCE\",\n \"GET_MCP_RESOURCE\",\n \"FETCH_RESOURCE\",\n \"FETCH_MCP_RESOURCE\",\n \"ACCESS_RESOURCE\",\n \"ACCESS_MCP_RESOURCE\",\n ],\n description: \"Reads a resource from an MCP server\",\n\n validate: async (runtime:
|
|
24
|
-
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport type { McpService } from \"./service\";\nimport { MCP_SERVICE_NAME } from \"./types\";\n\nexport const provider: Provider = {\n name: \"MCP\",\n description: \"Information about connected MCP servers, tools, and resources\",\n\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n return {\n values: {},\n data: {},\n text: \"No MCP servers are available.\",\n };\n }\n\n const providerData = mcpService.getProviderData();\n return {\n values: { mcpServers: JSON.stringify(providerData.values.mcp) },\n data: { mcpServerCount: Object.keys(providerData.data.mcp).length },\n text: providerData.text,\n };\n },\n};\n",
|
|
22
|
+
"import type {\n Action,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { MCP_SERVICE_NAME, type McpServer } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport { handleNoToolAvailable } from \"../utils/handler\";\nimport { handleToolResponse, processToolResult } from \"../utils/processing\";\nimport { createToolSelectionArgument, createToolSelectionName } from \"../utils/selection\";\n\nexport const callToolAction: Action = {\n name: \"CALL_MCP_TOOL\",\n similes: [\n \"CALL_TOOL\",\n \"CALL_MCP_TOOL\",\n \"USE_TOOL\",\n \"USE_MCP_TOOL\",\n \"EXECUTE_TOOL\",\n \"EXECUTE_MCP_TOOL\",\n \"RUN_TOOL\",\n \"RUN_MCP_TOOL\",\n \"INVOKE_TOOL\",\n \"INVOKE_MCP_TOOL\",\n ],\n description: \"Calls a tool from an MCP server to perform a specific task\",\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n const __avTextRaw = typeof message?.content?.text === \"string\" ? message.content.text : \"\";\n const __avText = __avTextRaw.toLowerCase();\n const __avKeywords = [\"call\", \"mcp\", \"tool\"];\n const __avKeywordOk =\n __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n const __avRegex = /\\b(?:call|mcp|tool)\\b/i;\n const __avRegexOk = __avRegex.test(__avText);\n const __avSource = String(message?.content?.source ?? message?.source ?? \"\");\n const __avExpectedSource = \"\";\n const __avSourceOk = __avExpectedSource\n ? __avSource === __avExpectedSource\n : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n const __avOptions = options && typeof options === \"object\" ? options : {};\n const __avInputOk =\n __avText.trim().length > 0 ||\n Object.keys(__avOptions as Record<string, unknown>).length > 0 ||\n Boolean(message?.content && typeof message.content === \"object\");\n\n if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n return false;\n }\n\n const __avLegacyValidate = async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state?: State\n ): Promise<boolean> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) return false;\n\n const servers = mcpService.getServers();\n return (\n servers.length > 0 &&\n servers.some(\n (server: McpServer) =>\n server.status === \"connected\" && server.tools && server.tools.length > 0\n )\n );\n };\n try {\n return Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const composedState = await runtime.composeState(message, [\"RECENT_MESSAGES\", \"MCP\"]);\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n throw new Error(\"MCP service not available\");\n }\n const mcpProvider = mcpService.getProviderData();\n\n try {\n const toolSelectionName = await createToolSelectionName({\n runtime,\n state: composedState,\n message,\n callback,\n mcpProvider,\n });\n if (!toolSelectionName || toolSelectionName.noToolAvailable) {\n return await handleNoToolAvailable(callback, toolSelectionName);\n }\n const { serverName, toolName } = toolSelectionName;\n\n const toolSelectionArgument = await createToolSelectionArgument({\n runtime,\n state: composedState,\n message,\n callback,\n mcpProvider,\n toolSelectionName,\n });\n if (!toolSelectionArgument) {\n return await handleNoToolAvailable(callback, toolSelectionName);\n }\n\n const result = await mcpService.callTool(\n serverName,\n toolName,\n toolSelectionArgument.toolArguments\n );\n\n const { toolOutput, hasAttachments, attachments } = processToolResult(\n result,\n serverName,\n toolName,\n runtime,\n message.entityId\n );\n\n const replyMemory = await handleToolResponse(\n runtime,\n message,\n serverName,\n toolName,\n toolSelectionArgument.toolArguments,\n toolOutput,\n hasAttachments,\n attachments,\n composedState,\n mcpProvider,\n callback\n );\n\n return {\n text: `Successfully called tool: ${serverName}/${toolName}. Reasoned response: ${replyMemory.content.text}`,\n values: {\n success: true,\n toolExecuted: true,\n serverName,\n toolName,\n hasAttachments,\n output: toolOutput,\n },\n data: {\n actionName: \"CALL_MCP_TOOL\",\n serverName,\n toolName,\n toolArgumentsJson: JSON.stringify(toolSelectionArgument.toolArguments),\n reasoning: toolSelectionName.reasoning,\n output: toolOutput,\n attachmentCount: attachments?.length ?? 0,\n },\n success: true,\n };\n } catch (error) {\n return await handleMcpError(\n composedState,\n mcpProvider,\n error,\n runtime,\n message,\n \"tool\",\n callback\n );\n }\n },\n\n examples: [\n [\n {\n name: \"{{user}}\",\n content: {\n text: \"Can you search for information about climate change?\",\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: \"I'll help you with that request. Let me access the right tool...\",\n actions: [\"CALL_MCP_TOOL\"],\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: \"I found the following information about climate change:\\n\\nClimate change refers to long-term shifts in temperatures and weather patterns. These shifts may be natural, but since the 1800s, human activities have been the main driver of climate change, primarily due to the burning of fossil fuels like coal, oil, and gas, which produces heat-trapping gases.\",\n actions: [\"CALL_MCP_TOOL\"],\n },\n },\n ],\n ],\n};\n",
|
|
23
|
+
"import {\n type Action,\n type ActionResult,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { resourceSelectionTemplate } from \"../templates/resourceSelectionTemplate\";\nimport { MCP_SERVICE_NAME, type McpServer, type McpServerInfo } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport {\n handleResourceAnalysis,\n processResourceResult,\n sendInitialResponse,\n} from \"../utils/processing\";\nimport type { ResourceSelection } from \"../utils/schemas\";\nimport {\n createResourceSelectionFeedbackPrompt,\n validateResourceSelection,\n} from \"../utils/validation\";\nimport { withModelRetry } from \"../utils/wrapper\";\n\nfunction createResourceSelectionPrompt(composedState: State, userMessage: string): string {\n const mcpData = (composedState.values.mcp ?? {}) as Record<string, McpServerInfo>;\n const serverNames = Object.keys(mcpData);\n\n let resourcesDescription = \"\";\n for (const serverName of serverNames) {\n const server = mcpData[serverName];\n if (server.status !== \"connected\") continue;\n\n const resourceUris = Object.keys(server.resources ?? {});\n for (const uri of resourceUris) {\n const resource = server.resources[uri];\n resourcesDescription += `Resource: ${uri} (Server: ${serverName})\\n`;\n resourcesDescription += `Name: ${resource.name ?? \"No name available\"}\\n`;\n resourcesDescription += `Description: ${\n resource.description ?? \"No description available\"\n }\\n`;\n resourcesDescription += `MIME Type: ${resource.mimeType ?? \"Not specified\"}\\n\\n`;\n }\n }\n\n const enhancedState: State = {\n ...composedState,\n values: {\n ...composedState.values,\n resourcesDescription,\n userMessage,\n },\n };\n\n return composePromptFromState({\n state: enhancedState,\n template: resourceSelectionTemplate,\n });\n}\n\nexport const readResourceAction: Action = {\n name: \"READ_MCP_RESOURCE\",\n similes: [\n \"READ_RESOURCE\",\n \"READ_MCP_RESOURCE\",\n \"GET_RESOURCE\",\n \"GET_MCP_RESOURCE\",\n \"FETCH_RESOURCE\",\n \"FETCH_MCP_RESOURCE\",\n \"ACCESS_RESOURCE\",\n \"ACCESS_MCP_RESOURCE\",\n ],\n description: \"Reads a resource from an MCP server\",\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n const __avTextRaw = typeof message?.content?.text === \"string\" ? message.content.text : \"\";\n const __avText = __avTextRaw.toLowerCase();\n const __avKeywords = [\"read\", \"mcp\", \"resource\"];\n const __avKeywordOk =\n __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n const __avRegex = /\\b(?:read|mcp|resource)\\b/i;\n const __avRegexOk = __avRegex.test(__avText);\n const __avSource = String(message?.content?.source ?? message?.source ?? \"\");\n const __avExpectedSource = \"\";\n const __avSourceOk = __avExpectedSource\n ? __avSource === __avExpectedSource\n : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n const __avOptions = options && typeof options === \"object\" ? options : {};\n const __avInputOk =\n __avText.trim().length > 0 ||\n Object.keys(__avOptions as Record<string, unknown>).length > 0 ||\n Boolean(message?.content && typeof message.content === \"object\");\n\n if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n return false;\n }\n\n const __avLegacyValidate = async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state?: State\n ): Promise<boolean> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) return false;\n\n const servers = mcpService.getServers();\n return (\n servers.length > 0 &&\n servers.some(\n (server: McpServer) =>\n server.status === \"connected\" && server.resources && server.resources.length > 0\n )\n );\n };\n try {\n return Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const composedState = await runtime.composeState(message, [\"RECENT_MESSAGES\", \"MCP\"]);\n\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n throw new Error(\"MCP service not available\");\n }\n\n const mcpProvider = mcpService.getProviderData();\n\n try {\n await sendInitialResponse(callback);\n\n const resourceSelectionPrompt = createResourceSelectionPrompt(\n composedState,\n message.content.text ?? \"\"\n );\n\n const resourceSelection = (await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: resourceSelectionPrompt,\n })) as string;\n\n const parsedSelection = await withModelRetry<ResourceSelection>({\n runtime,\n state: composedState,\n message,\n callback,\n input: resourceSelection,\n validationFn: (data) => validateResourceSelection(data),\n createFeedbackPromptFn: (originalResponse, errorMessage, state, userMessage) =>\n createResourceSelectionFeedbackPrompt(\n typeof originalResponse === \"string\"\n ? originalResponse\n : JSON.stringify(originalResponse),\n errorMessage,\n state,\n userMessage\n ),\n failureMsg: `I'm having trouble finding the resource you're looking for. Could you provide more details about what you need?`,\n retryCount: 0,\n });\n\n if (!parsedSelection || parsedSelection.noResourceAvailable) {\n const responseText =\n \"I don't have a specific resource that contains the information you're looking for. Let me try to assist you directly instead.\";\n\n if (callback && parsedSelection?.noResourceAvailable) {\n await callback({\n text: responseText,\n actions: [\"REPLY\"],\n });\n }\n return {\n text: responseText,\n values: {\n success: true,\n noResourceAvailable: true,\n fallbackToDirectAssistance: true,\n },\n data: {\n actionName: \"READ_MCP_RESOURCE\",\n noResourceAvailable: true,\n reason: parsedSelection?.reasoning ?? \"No appropriate resource available\",\n },\n success: true,\n };\n }\n\n const { serverName, uri } = parsedSelection;\n\n const result = await mcpService.readResource(serverName, uri);\n\n const { resourceContent, resourceMeta } = processResourceResult(result, uri);\n\n await handleResourceAnalysis(\n runtime,\n message,\n uri,\n serverName,\n resourceContent,\n resourceMeta,\n callback\n );\n\n return {\n text: `Successfully read resource: ${uri}`,\n values: {\n success: true,\n resourceRead: true,\n serverName,\n uri,\n },\n data: {\n actionName: \"READ_MCP_RESOURCE\",\n serverName,\n uri,\n reasoning: parsedSelection?.reasoning,\n resourceMeta,\n contentLength: resourceContent?.length ?? 0,\n },\n success: true,\n };\n } catch (error) {\n return await handleMcpError(\n composedState,\n mcpProvider,\n error,\n runtime,\n message,\n \"resource\",\n callback\n );\n }\n },\n\n examples: [\n [\n {\n name: \"{{user}}\",\n content: {\n text: \"Can you get the documentation about installing elizaOS?\",\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: `I'll retrieve that information for you. Let me access the resource...`,\n actions: [\"READ_MCP_RESOURCE\"],\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: `elizaOS installation is straightforward. You'll need Node.js 23+ and Git installed. For Windows users, WSL 2 is required. The quickest way to get started is by cloning the elizaOS starter repository with \\`git clone https://github.com/elizaos/eliza-starter.git\\`, then run \\`cd eliza-starter && cp .env.example .env && bun i && bun run build && bun start\\`. This will set up a development environment with the core features enabled. After starting, you can access the web interface at http://localhost:3000 to interact with your agent.`,\n actions: [\"READ_MCP_RESOURCE\"],\n },\n },\n ],\n ],\n};\n",
|
|
24
|
+
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport type { McpService } from \"./service\";\nimport { MCP_SERVICE_NAME } from \"./types\";\n\nexport const provider: Provider = {\n name: \"MCP\",\n description: \"Information about connected MCP servers, tools, and resources\",\n\n dynamic: true,\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n return {\n values: {},\n data: {},\n text: \"No MCP servers are available.\",\n };\n }\n\n const providerData = mcpService.getProviderData();\n return {\n values: { mcpServers: JSON.stringify(providerData.values.mcp) },\n data: { mcpServerCount: Object.keys(providerData.data.mcp).length },\n text: providerData.text,\n };\n },\n};\n",
|
|
25
25
|
"import { type IAgentRuntime, logger, Service } from \"@elizaos/core\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport type {\n CallToolResult,\n Resource,\n ResourceTemplate,\n Tool,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport type { JSONSchema7 } from \"json-schema\";\nimport {\n createMcpToolCompatibilitySync as createMcpToolCompatibility,\n type McpToolCompatibility,\n} from \"./tool-compatibility\";\nimport {\n BACKOFF_MULTIPLIER,\n type ConnectionState,\n DEFAULT_MCP_TIMEOUT_SECONDS,\n DEFAULT_PING_CONFIG,\n type HttpMcpServerConfig,\n INITIAL_RETRY_DELAY,\n MAX_RECONNECT_ATTEMPTS,\n MCP_SERVICE_NAME,\n type McpConnection,\n type McpProvider,\n type McpResourceResponse,\n type McpServer,\n type McpServerConfig,\n type McpSettings,\n type PingConfig,\n type StdioMcpServerConfig,\n} from \"./types\";\nimport { buildMcpProviderData } from \"./utils/mcp\";\n\nexport class McpService extends Service {\n static serviceType: string = MCP_SERVICE_NAME;\n capabilityDescription = \"Enables the agent to interact with MCP (Model Context Protocol) servers\";\n\n private connections: Map<string, McpConnection> = new Map();\n private connectionStates: Map<string, ConnectionState> = new Map();\n private mcpProvider: McpProvider = {\n values: { mcp: {}, mcpText: \"\" },\n data: { mcp: {} },\n text: \"\",\n };\n private pingConfig: PingConfig = DEFAULT_PING_CONFIG;\n private toolCompatibility: McpToolCompatibility | null = null;\n private compatibilityInitialized = false;\n\n private initializationPromise: Promise<void> | null = null;\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n this.initializationPromise = this.initializeMcpServers();\n }\n\n static async start(runtime: IAgentRuntime): Promise<McpService> {\n const service = new McpService(runtime);\n if (service.initializationPromise) {\n await service.initializationPromise;\n }\n return service;\n }\n\n async waitForInitialization(): Promise<void> {\n if (this.initializationPromise) {\n await this.initializationPromise;\n }\n }\n\n async stop(): Promise<void> {\n for (const [name] of this.connections) {\n await this.deleteConnection(name);\n }\n this.connections.clear();\n for (const state of this.connectionStates.values()) {\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n }\n this.connectionStates.clear();\n }\n\n private async initializeMcpServers(): Promise<void> {\n const mcpSettings = this.getMcpSettings();\n\n if (!mcpSettings || !mcpSettings.servers || Object.keys(mcpSettings.servers).length === 0) {\n this.mcpProvider = buildMcpProviderData([]);\n return;\n }\n\n await this.updateServerConnections(mcpSettings.servers);\n const servers = this.getServers();\n this.mcpProvider = buildMcpProviderData(servers);\n }\n\n private getMcpSettings(): McpSettings | undefined {\n const rawSettings = this.runtime.getSetting(\"mcp\");\n let settings: McpSettings | null | undefined = null;\n\n if (rawSettings && typeof rawSettings === \"object\" && !Array.isArray(rawSettings)) {\n const parsed = rawSettings as Record<string, unknown>;\n if (\"servers\" in parsed && typeof parsed.servers === \"object\" && parsed.servers !== null) {\n settings = parsed as unknown as McpSettings;\n }\n }\n\n if (!settings || !settings.servers) {\n const characterSettings = this.runtime.character.settings;\n if (\n characterSettings &&\n typeof characterSettings === \"object\" &&\n \"mcp\" in characterSettings\n ) {\n const characterMcpSettings = characterSettings.mcp;\n if (\n characterMcpSettings &&\n typeof characterMcpSettings === \"object\" &&\n \"servers\" in characterMcpSettings\n ) {\n settings = characterMcpSettings as unknown as McpSettings;\n }\n }\n }\n\n if (settings && typeof settings === \"object\" && settings.servers) {\n return settings;\n }\n\n return undefined;\n }\n\n private async updateServerConnections(\n serverConfigs: Readonly<Record<string, McpServerConfig>>\n ): Promise<void> {\n const currentNames = new Set(this.connections.keys());\n const newNames = new Set(Object.keys(serverConfigs));\n\n for (const name of currentNames) {\n if (!newNames.has(name)) {\n await this.deleteConnection(name);\n }\n }\n\n const connectionPromises = Object.entries(serverConfigs).map(async ([name, config]) => {\n const currentConnection = this.connections.get(name);\n if (!currentConnection) {\n await this.initializeConnection(name, config);\n } else if (JSON.stringify(config) !== currentConnection.server.config) {\n await this.deleteConnection(name);\n await this.initializeConnection(name, config);\n }\n });\n\n await Promise.allSettled(connectionPromises);\n }\n\n private async initializeConnection(name: string, config: McpServerConfig): Promise<void> {\n await this.deleteConnection(name);\n const state: ConnectionState = {\n status: \"connecting\",\n reconnectAttempts: 0,\n consecutivePingFailures: 0,\n };\n this.connectionStates.set(name, state);\n\n const client = new Client({ name: \"elizaOS\", version: \"1.0.0\" }, { capabilities: {} });\n const transport: StdioClientTransport | SSEClientTransport =\n config.type === \"stdio\"\n ? await this.buildStdioClientTransport(name, config)\n : await this.buildHttpClientTransport(name, config);\n\n const connection: McpConnection = {\n server: {\n name,\n config: JSON.stringify(config),\n status: \"connecting\",\n },\n client,\n transport,\n };\n this.connections.set(name, connection);\n this.setupTransportHandlers(name, connection, state);\n await client.connect(transport);\n\n const capabilities = client.getServerCapabilities();\n const tools = await this.fetchToolsList(name);\n const resources = capabilities?.resources ? await this.fetchResourcesList(name) : [];\n const resourceTemplates = capabilities?.resources\n ? await this.fetchResourceTemplatesList(name)\n : [];\n\n connection.server = {\n status: \"connected\",\n name,\n config: JSON.stringify(config),\n error: \"\",\n tools,\n resources,\n resourceTemplates,\n };\n state.status = \"connected\";\n state.lastConnected = new Date();\n state.reconnectAttempts = 0;\n state.consecutivePingFailures = 0;\n this.startPingMonitoring(name);\n }\n\n private setupTransportHandlers(\n name: string,\n connection: McpConnection,\n _state: ConnectionState\n ): void {\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n const isHttpTransport = config.type !== \"stdio\";\n\n connection.transport.onerror = async (error): Promise<void> => {\n const errorMessage = error?.message ?? String(error);\n const isExpectedTimeout =\n isHttpTransport &&\n (errorMessage === \"undefined\" ||\n errorMessage === \"\" ||\n errorMessage.includes(\"SSE error\") ||\n errorMessage.includes(\"timeout\"));\n\n if (!isExpectedTimeout) {\n logger.error({ error, serverName: name }, `Transport error for \"${name}\"`);\n connection.server.status = \"disconnected\";\n this.appendErrorMessage(connection, error.message);\n }\n\n if (!isHttpTransport) {\n this.handleDisconnection(name, error);\n }\n };\n\n connection.transport.onclose = async (): Promise<void> => {\n if (!isHttpTransport) {\n connection.server.status = \"disconnected\";\n this.handleDisconnection(name, new Error(\"Transport closed\"));\n }\n };\n }\n\n private startPingMonitoring(name: string): void {\n const connection = this.connections.get(name);\n if (!connection) return;\n\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n const isHttpTransport = config.type !== \"stdio\";\n\n if (isHttpTransport) {\n return;\n }\n\n const state = this.connectionStates.get(name);\n if (!state || !this.pingConfig.enabled) return;\n if (state.pingInterval) clearInterval(state.pingInterval);\n state.pingInterval = setInterval(() => {\n this.sendPing(name).catch((err: Error) => {\n logger.warn({ error: err.message, serverName: name }, `Ping failed for ${name}`);\n this.handlePingFailure(name, err);\n });\n }, this.pingConfig.intervalMs);\n }\n\n private async sendPing(name: string): Promise<void> {\n const connection = this.connections.get(name);\n if (!connection) throw new Error(`No connection for ping: ${name}`);\n\n await Promise.race([\n connection.client.listTools(),\n new Promise<never>((_, reject) =>\n setTimeout(() => reject(new Error(\"Ping timeout\")), this.pingConfig.timeoutMs)\n ),\n ]);\n\n const state = this.connectionStates.get(name);\n if (state) state.consecutivePingFailures = 0;\n }\n\n private handlePingFailure(name: string, error: Error): void {\n const state = this.connectionStates.get(name);\n if (!state) return;\n state.consecutivePingFailures++;\n if (state.consecutivePingFailures >= this.pingConfig.failuresBeforeDisconnect) {\n this.handleDisconnection(name, error);\n }\n }\n\n private handleDisconnection(name: string, error: Error | unknown): void {\n const state = this.connectionStates.get(name);\n if (!state) return;\n state.status = \"disconnected\";\n state.lastError = error instanceof Error ? error : new Error(String(error));\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n if (state.reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {\n return;\n }\n const delay = INITIAL_RETRY_DELAY * BACKOFF_MULTIPLIER ** state.reconnectAttempts;\n state.reconnectTimeout = setTimeout(async () => {\n state.reconnectAttempts++;\n const connection = this.connections.get(name);\n const config = connection?.server?.config;\n if (config) {\n try {\n await this.initializeConnection(name, JSON.parse(config));\n } catch (err) {\n this.handleDisconnection(name, err);\n }\n }\n }, delay);\n }\n\n async deleteConnection(name: string): Promise<void> {\n const connection = this.connections.get(name);\n if (connection) {\n await connection.transport.close();\n await connection.client.close();\n this.connections.delete(name);\n }\n const state = this.connectionStates.get(name);\n if (state) {\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n this.connectionStates.delete(name);\n }\n }\n\n private getServerConnection(serverName: string): McpConnection | undefined {\n return this.connections.get(serverName);\n }\n\n private async buildStdioClientTransport(\n name: string,\n config: StdioMcpServerConfig\n ): Promise<StdioClientTransport> {\n if (!config.command) {\n throw new Error(`Missing command for stdio MCP server ${name}`);\n }\n\n return new StdioClientTransport({\n command: config.command,\n args: config.args ? [...config.args] : undefined,\n env: {\n ...config.env,\n ...(process.env.PATH ? { PATH: process.env.PATH } : {}),\n },\n stderr: \"pipe\",\n cwd: config.cwd,\n });\n }\n\n private async buildHttpClientTransport(\n name: string,\n config: HttpMcpServerConfig\n ): Promise<SSEClientTransport> {\n if (!config.url) {\n throw new Error(`Missing URL for HTTP MCP server ${name}`);\n }\n\n return new SSEClientTransport(new URL(config.url));\n }\n\n private appendErrorMessage(connection: McpConnection, error: string): void {\n const newError = connection.server.error ? `${connection.server.error}\\n${error}` : error;\n connection.server.error = newError;\n }\n\n private async fetchToolsList(serverName: string): Promise<Tool[]> {\n const connection = this.getServerConnection(serverName);\n if (!connection) {\n return [];\n }\n\n const response = await connection.client.listTools();\n\n const tools = (response?.tools ?? []).map((tool) => {\n const processedTool = { ...tool };\n\n if (tool.inputSchema) {\n if (!this.compatibilityInitialized) {\n this.initializeToolCompatibility();\n }\n\n processedTool.inputSchema = this.applyToolCompatibility(\n tool.inputSchema as JSONSchema7\n ) as typeof tool.inputSchema;\n }\n\n return processedTool;\n });\n\n return tools;\n }\n\n private async fetchResourcesList(serverName: string): Promise<Resource[]> {\n const connection = this.getServerConnection(serverName);\n if (!connection) {\n return [];\n }\n\n const response = await connection.client.listResources();\n return response?.resources ?? [];\n }\n\n private async fetchResourceTemplatesList(serverName: string): Promise<ResourceTemplate[]> {\n const connection = this.getServerConnection(serverName);\n if (!connection) {\n return [];\n }\n\n const response = await connection.client.listResourceTemplates();\n return response?.resourceTemplates ?? [];\n }\n\n public getServers(): McpServer[] {\n return Array.from(this.connections.values())\n .filter((conn) => !conn.server.disabled)\n .map((conn) => conn.server);\n }\n\n public getProviderData(): McpProvider {\n return this.mcpProvider;\n }\n\n public async callTool(\n serverName: string,\n toolName: string,\n toolArguments?: Readonly<Record<string, unknown>>\n ): Promise<CallToolResult> {\n const connection = this.connections.get(serverName);\n if (!connection) {\n throw new Error(`No connection found for server: ${serverName}`);\n }\n if (connection.server.disabled) {\n throw new Error(`Server \"${serverName}\" is disabled`);\n }\n\n let timeout = DEFAULT_MCP_TIMEOUT_SECONDS;\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n if (config.type === \"stdio\" && config.timeoutInMillis) {\n timeout = config.timeoutInMillis;\n }\n\n const result = await connection.client.callTool(\n {\n name: toolName,\n arguments: toolArguments ? { ...toolArguments } : undefined,\n },\n undefined,\n { timeout }\n );\n if (!result.content) {\n throw new Error(\"Invalid tool result: missing content array\");\n }\n return result as CallToolResult;\n }\n\n public async readResource(serverName: string, uri: string): Promise<McpResourceResponse> {\n const connection = this.connections.get(serverName);\n if (!connection) {\n throw new Error(`No connection found for server: ${serverName}`);\n }\n if (connection.server.disabled) {\n throw new Error(`Server \"${serverName}\" is disabled`);\n }\n return await connection.client.readResource({ uri });\n }\n\n public async restartConnection(serverName: string): Promise<void> {\n const connection = this.connections.get(serverName);\n const config = connection?.server?.config;\n if (config) {\n connection.server.status = \"connecting\";\n connection.server.error = \"\";\n await this.deleteConnection(serverName);\n await this.initializeConnection(serverName, JSON.parse(config));\n }\n }\n\n private initializeToolCompatibility(): void {\n if (this.compatibilityInitialized) return;\n\n this.toolCompatibility = createMcpToolCompatibility(this.runtime);\n this.compatibilityInitialized = true;\n }\n\n public applyToolCompatibility(toolSchema: JSONSchema7): JSONSchema7 {\n if (!this.compatibilityInitialized) {\n this.initializeToolCompatibility();\n }\n\n if (!this.toolCompatibility || !toolSchema) {\n return toolSchema;\n }\n\n return this.toolCompatibility.transformToolSchema(toolSchema);\n }\n}\n",
|
|
26
26
|
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { detectModelProvider, type McpToolCompatibility } from \"./base\";\n\nexport {\n type ArrayConstraints,\n McpToolCompatibility,\n type ModelInfo,\n type ModelProvider,\n type NumberConstraints,\n type ObjectConstraints,\n type SchemaConstraints,\n type StringConstraints,\n} from \"./base\";\n\nexport { detectModelProvider };\n\nexport async function createMcpToolCompatibility(\n runtime: IAgentRuntime\n): Promise<McpToolCompatibility | null> {\n const modelInfo = detectModelProvider(runtime);\n\n switch (modelInfo.provider) {\n case \"openai\": {\n const { OpenAIMcpCompatibility } = await import(\"./providers/openai.js\");\n return new OpenAIMcpCompatibility(modelInfo);\n }\n case \"anthropic\": {\n const { AnthropicMcpCompatibility } = await import(\"./providers/anthropic.js\");\n return new AnthropicMcpCompatibility(modelInfo);\n }\n case \"google\": {\n const { GoogleMcpCompatibility } = await import(\"./providers/google.js\");\n return new GoogleMcpCompatibility(modelInfo);\n }\n default:\n return null;\n }\n}\n\nexport function createMcpToolCompatibilitySync(\n runtime: IAgentRuntime\n): McpToolCompatibility | null {\n const modelInfo = detectModelProvider(runtime);\n\n switch (modelInfo.provider) {\n case \"openai\": {\n const { OpenAIMcpCompatibility } = require(\"./providers/openai\");\n return new OpenAIMcpCompatibility(modelInfo);\n }\n case \"anthropic\": {\n const { AnthropicMcpCompatibility } = require(\"./providers/anthropic\");\n return new AnthropicMcpCompatibility(modelInfo);\n }\n case \"google\": {\n const { GoogleMcpCompatibility } = require(\"./providers/google\");\n return new GoogleMcpCompatibility(modelInfo);\n }\n default:\n return null;\n }\n}\n"
|
|
27
27
|
],
|
|
28
|
-
"mappings": "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",
|
|
29
|
-
"debugId": "
|
|
28
|
+
"mappings": "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",
|
|
29
|
+
"debugId": "1F147A30DFB3603364756E2164756E21",
|
|
30
30
|
"names": []
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callToolAction.d.ts","sourceRoot":"","sources":["../../../src/actions/callToolAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAMP,MAAM,eAAe,CAAC;AAQvB,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"callToolAction.d.ts","sourceRoot":"","sources":["../../../src/actions/callToolAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAMP,MAAM,eAAe,CAAC;AAQvB,eAAO,MAAM,cAAc,EAAE,MA4L5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readResourceAction.d.ts","sourceRoot":"","sources":["../../../src/actions/readResourceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAqDvB,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"readResourceAction.d.ts","sourceRoot":"","sources":["../../../src/actions/readResourceAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAQZ,MAAM,eAAe,CAAC;AAqDvB,eAAO,MAAM,kBAAkB,EAAE,MA8MhC,CAAC"}
|
package/dist/node/index.js
CHANGED
|
@@ -1381,12 +1381,33 @@ var callToolAction = {
|
|
|
1381
1381
|
"INVOKE_MCP_TOOL"
|
|
1382
1382
|
],
|
|
1383
1383
|
description: "Calls a tool from an MCP server to perform a specific task",
|
|
1384
|
-
validate: async (runtime,
|
|
1385
|
-
const
|
|
1386
|
-
|
|
1384
|
+
validate: async (runtime, message, state, options) => {
|
|
1385
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
1386
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
1387
|
+
const __avKeywords = ["call", "mcp", "tool"];
|
|
1388
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
1389
|
+
const __avRegex = /\b(?:call|mcp|tool)\b/i;
|
|
1390
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
1391
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
1392
|
+
const __avExpectedSource = "";
|
|
1393
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
1394
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
1395
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
1396
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
1397
|
+
return false;
|
|
1398
|
+
}
|
|
1399
|
+
const __avLegacyValidate = async (runtime2, _message, _state) => {
|
|
1400
|
+
const mcpService = runtime2.getService(MCP_SERVICE_NAME);
|
|
1401
|
+
if (!mcpService)
|
|
1402
|
+
return false;
|
|
1403
|
+
const servers = mcpService.getServers();
|
|
1404
|
+
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.tools && server.tools.length > 0);
|
|
1405
|
+
};
|
|
1406
|
+
try {
|
|
1407
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
1408
|
+
} catch {
|
|
1387
1409
|
return false;
|
|
1388
|
-
|
|
1389
|
-
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.tools && server.tools.length > 0);
|
|
1410
|
+
}
|
|
1390
1411
|
},
|
|
1391
1412
|
handler: async (runtime, message, _state, _options, callback) => {
|
|
1392
1413
|
const composedState = await runtime.composeState(message, ["RECENT_MESSAGES", "MCP"]);
|
|
@@ -1527,12 +1548,33 @@ var readResourceAction = {
|
|
|
1527
1548
|
"ACCESS_MCP_RESOURCE"
|
|
1528
1549
|
],
|
|
1529
1550
|
description: "Reads a resource from an MCP server",
|
|
1530
|
-
validate: async (runtime,
|
|
1531
|
-
const
|
|
1532
|
-
|
|
1551
|
+
validate: async (runtime, message, state, options) => {
|
|
1552
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
1553
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
1554
|
+
const __avKeywords = ["read", "mcp", "resource"];
|
|
1555
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
1556
|
+
const __avRegex = /\b(?:read|mcp|resource)\b/i;
|
|
1557
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
1558
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
1559
|
+
const __avExpectedSource = "";
|
|
1560
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
1561
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
1562
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
1563
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
1564
|
+
return false;
|
|
1565
|
+
}
|
|
1566
|
+
const __avLegacyValidate = async (runtime2, _message, _state) => {
|
|
1567
|
+
const mcpService = runtime2.getService(MCP_SERVICE_NAME);
|
|
1568
|
+
if (!mcpService)
|
|
1569
|
+
return false;
|
|
1570
|
+
const servers = mcpService.getServers();
|
|
1571
|
+
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.resources && server.resources.length > 0);
|
|
1572
|
+
};
|
|
1573
|
+
try {
|
|
1574
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
1575
|
+
} catch {
|
|
1533
1576
|
return false;
|
|
1534
|
-
|
|
1535
|
-
return servers.length > 0 && servers.some((server) => server.status === "connected" && server.resources && server.resources.length > 0);
|
|
1577
|
+
}
|
|
1536
1578
|
},
|
|
1537
1579
|
handler: async (runtime, message, _state, _options, callback) => {
|
|
1538
1580
|
const composedState = await runtime.composeState(message, ["RECENT_MESSAGES", "MCP"]);
|
|
@@ -1637,6 +1679,7 @@ var readResourceAction = {
|
|
|
1637
1679
|
var provider = {
|
|
1638
1680
|
name: "MCP",
|
|
1639
1681
|
description: "Information about connected MCP servers, tools, and resources",
|
|
1682
|
+
dynamic: true,
|
|
1640
1683
|
get: async (runtime, _message, _state) => {
|
|
1641
1684
|
const mcpService = runtime.getService(MCP_SERVICE_NAME);
|
|
1642
1685
|
if (!mcpService) {
|
|
@@ -2069,4 +2112,4 @@ export {
|
|
|
2069
2112
|
src_default as default
|
|
2070
2113
|
};
|
|
2071
2114
|
|
|
2072
|
-
//# debugId=
|
|
2115
|
+
//# debugId=3F220FC71C03FFDC64756E2164756E21
|
package/dist/node/index.js.map
CHANGED
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"export const toolSelectionNameSchema = {\n type: \"object\",\n required: [\"serverName\", \"toolName\"],\n properties: {\n serverName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"serverName must not be empty\",\n },\n toolName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"toolName must not be empty\",\n },\n reasoning: {\n type: \"string\",\n },\n noToolAvailable: {\n type: \"boolean\",\n },\n },\n} as const;\n\nexport interface ToolSelectionName {\n readonly serverName: string;\n readonly toolName: string;\n readonly reasoning?: string;\n readonly noToolAvailable?: boolean;\n}\n\nexport const toolSelectionArgumentSchema = {\n type: \"object\",\n required: [\"toolArguments\"],\n properties: {\n toolArguments: {\n type: \"object\",\n },\n },\n} as const;\n\nexport interface ToolSelectionArgument {\n readonly toolArguments: Readonly<Record<string, unknown>>;\n}\n\nexport const ResourceSelectionSchema = {\n type: \"object\",\n required: [\"serverName\", \"uri\"],\n properties: {\n serverName: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"serverName must not be empty\",\n },\n uri: {\n type: \"string\",\n minLength: 1,\n errorMessage: \"uri must not be empty\",\n },\n reasoning: {\n type: \"string\",\n },\n noResourceAvailable: {\n type: \"boolean\",\n },\n },\n} as const;\n\nexport interface ResourceSelection {\n readonly serverName: string;\n readonly uri: string;\n readonly reasoning?: string;\n readonly noResourceAvailable?: boolean;\n}\n\nexport function isToolSelectionName(value: unknown): value is ToolSelectionName {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const obj = value as Record<string, unknown>;\n return (\n typeof obj.serverName === \"string\" &&\n obj.serverName.length > 0 &&\n typeof obj.toolName === \"string\" &&\n obj.toolName.length > 0\n );\n}\n\nexport function isToolSelectionArgument(value: unknown): value is ToolSelectionArgument {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const obj = value as Record<string, unknown>;\n return typeof obj.toolArguments === \"object\" && obj.toolArguments !== null;\n}\n\nexport function isResourceSelection(value: unknown): value is ResourceSelection {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const obj = value as Record<string, unknown>;\n return (\n typeof obj.serverName === \"string\" &&\n obj.serverName.length > 0 &&\n typeof obj.uri === \"string\" &&\n obj.uri.length > 0\n );\n}\n",
|
|
20
20
|
"import type { State } from \"@elizaos/core\";\nimport {\n type McpProviderData,\n type McpServerInfo,\n ResourceSelectionSchema,\n type ValidationResult,\n} from \"../types\";\nimport { validateJsonSchema } from \"./json\";\nimport {\n type ResourceSelection,\n type ToolSelectionArgument,\n type ToolSelectionName,\n toolSelectionArgumentSchema,\n toolSelectionNameSchema,\n} from \"./schemas\";\n\nexport type { ResourceSelection } from \"./schemas\";\n\nexport interface ToolSelection {\n readonly serverName: string;\n readonly toolName: string;\n readonly arguments: Readonly<Record<string, unknown>>;\n readonly reasoning?: string;\n readonly noToolAvailable?: boolean;\n}\n\nexport function validateToolSelectionName(\n parsed: unknown,\n state: State\n): ValidationResult<ToolSelectionName> {\n const basicResult = validateJsonSchema<ToolSelectionName>(parsed, toolSelectionNameSchema);\n if (basicResult.success === false) {\n return { success: false, error: basicResult.error };\n }\n\n const data = basicResult.data;\n const mcpData = (state.values.mcp ?? {}) as Record<string, McpServerInfo>;\n const server = mcpData[data.serverName];\n\n if (!server || server.status !== \"connected\") {\n return {\n success: false,\n error: `Server \"${data.serverName}\" not found or not connected`,\n };\n }\n\n const toolInfo = server.tools?.[data.toolName];\n if (!toolInfo) {\n return {\n success: false,\n error: `Tool \"${data.toolName}\" not found on server \"${data.serverName}\"`,\n };\n }\n\n return { success: true, data };\n}\n\nexport function validateToolSelectionArgument(\n parsed: unknown,\n toolInputSchema: Readonly<Record<string, unknown>>\n): ValidationResult<ToolSelectionArgument> {\n const basicResult = validateJsonSchema<ToolSelectionArgument>(\n parsed,\n toolSelectionArgumentSchema\n );\n if (basicResult.success === false) {\n return { success: false, error: basicResult.error };\n }\n\n const data = basicResult.data;\n const validationResult = validateJsonSchema(data.toolArguments, toolInputSchema);\n\n if (validationResult.success === false) {\n return {\n success: false,\n error: `Invalid arguments: ${validationResult.error}`,\n };\n }\n\n return { success: true, data };\n}\n\nexport function validateResourceSelection(selection: unknown): ValidationResult<ResourceSelection> {\n return validateJsonSchema<ResourceSelection>(selection, ResourceSelectionSchema);\n}\n\ninterface ToolDescription {\n readonly description?: string;\n}\n\nexport function createToolSelectionFeedbackPrompt(\n originalResponse: string,\n errorMessage: string,\n composedState: State,\n userMessage: string\n): string {\n let toolsDescription = \"\";\n const mcpData = composedState.values.mcp as Record<string, McpProviderData[string]> | undefined;\n\n if (mcpData) {\n for (const [serverName, server] of Object.entries(mcpData)) {\n if (server.status !== \"connected\") continue;\n\n const tools = server.tools as Record<string, ToolDescription> | undefined;\n if (tools) {\n for (const [toolName, tool] of Object.entries(tools)) {\n toolsDescription += `Tool: ${toolName} (Server: ${serverName})\\n`;\n toolsDescription += `Description: ${tool.description ?? \"No description available\"}\\n\\n`;\n }\n }\n }\n }\n\n return createFeedbackPrompt(\n originalResponse,\n errorMessage,\n \"tool\",\n toolsDescription,\n userMessage\n );\n}\n\ninterface ResourceDescription {\n readonly description?: string;\n readonly name?: string;\n}\n\nexport function createResourceSelectionFeedbackPrompt(\n originalResponse: string,\n errorMessage: string,\n composedState: State,\n userMessage: string\n): string {\n let resourcesDescription = \"\";\n const mcpData = composedState.values.mcp as Record<string, McpProviderData[string]> | undefined;\n\n if (mcpData) {\n for (const [serverName, server] of Object.entries(mcpData)) {\n if (server.status !== \"connected\") continue;\n\n const resources = server.resources as Record<string, ResourceDescription> | undefined;\n if (resources) {\n for (const [uri, resource] of Object.entries(resources)) {\n resourcesDescription += `Resource: ${uri} (Server: ${serverName})\\n`;\n resourcesDescription += `Name: ${resource.name ?? \"No name available\"}\\n`;\n resourcesDescription += `Description: ${\n resource.description ?? \"No description available\"\n }\\n\\n`;\n }\n }\n }\n }\n\n return createFeedbackPrompt(\n originalResponse,\n errorMessage,\n \"resource\",\n resourcesDescription,\n userMessage\n );\n}\n\nfunction createFeedbackPrompt(\n originalResponse: string,\n errorMessage: string,\n itemType: string,\n itemsDescription: string,\n userMessage: string\n): string {\n return `Error parsing JSON: ${errorMessage}\n\nYour original response:\n${originalResponse}\n\nPlease try again with valid JSON for ${itemType} selection.\nAvailable ${itemType}s:\n${itemsDescription}\n\nUser request: ${userMessage}`;\n}\n",
|
|
21
21
|
"import {\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport { DEFAULT_MAX_RETRIES, type McpSettings, type ValidationResult } from \"../types\";\nimport { parseJSON } from \"./json\";\n\nexport type Input = string | Record<string, unknown>;\n\ntype CreateFeedbackPromptFn = (\n originalResponse: Input,\n errorMessage: string,\n composedState: State,\n userMessage: string\n) => string;\n\nexport interface WithModelRetryOptions<T> {\n readonly runtime: IAgentRuntime;\n readonly message: Memory;\n readonly state: State;\n readonly input: Input;\n readonly validationFn: (data: Input) => ValidationResult<T>;\n readonly createFeedbackPromptFn: CreateFeedbackPromptFn;\n readonly callback?: HandlerCallback;\n readonly failureMsg?: string;\n readonly retryCount?: number;\n}\n\nexport async function withModelRetry<T>({\n runtime,\n message,\n state,\n callback,\n input,\n validationFn,\n createFeedbackPromptFn,\n failureMsg,\n retryCount = 0,\n}: WithModelRetryOptions<T>): Promise<T | null> {\n const maxRetries = getMaxRetries(runtime);\n\n const parsedJson = typeof input === \"string\" ? parseJSON<Record<string, unknown>>(input) : input;\n\n const validationResult = validationFn(parsedJson);\n\n if (validationResult.success) {\n return validationResult.data;\n }\n\n const errorMessage = (validationResult as { success: false; error: string }).error;\n\n if (retryCount < maxRetries) {\n const feedbackPrompt: string = createFeedbackPromptFn(\n input,\n errorMessage,\n state,\n message.content.text ?? \"\"\n );\n\n const retrySelection = (await runtime.useModel(ModelType.OBJECT_LARGE, {\n prompt: feedbackPrompt,\n })) as Record<string, unknown>;\n\n return withModelRetry({\n runtime,\n input: retrySelection,\n validationFn,\n message,\n state,\n createFeedbackPromptFn,\n callback,\n failureMsg,\n retryCount: retryCount + 1,\n });\n }\n\n if (callback && failureMsg) {\n await callback({\n text: failureMsg,\n actions: [\"REPLY\"],\n });\n }\n\n return null;\n}\n\nfunction getMaxRetries(runtime: IAgentRuntime): number {\n const rawSettings = runtime.getSetting(\"mcp\");\n\n if (rawSettings && typeof rawSettings === \"object\") {\n const settings = rawSettings as McpSettings;\n if (typeof settings.maxRetries === \"number\" && settings.maxRetries >= 0) {\n return settings.maxRetries;\n }\n }\n\n return DEFAULT_MAX_RETRIES;\n}\n",
|
|
22
|
-
"import type {\n Action,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { MCP_SERVICE_NAME, type McpServer } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport { handleNoToolAvailable } from \"../utils/handler\";\nimport { handleToolResponse, processToolResult } from \"../utils/processing\";\nimport { createToolSelectionArgument, createToolSelectionName } from \"../utils/selection\";\n\nexport const callToolAction: Action = {\n name: \"CALL_MCP_TOOL\",\n similes: [\n \"CALL_TOOL\",\n \"CALL_MCP_TOOL\",\n \"USE_TOOL\",\n \"USE_MCP_TOOL\",\n \"EXECUTE_TOOL\",\n \"EXECUTE_MCP_TOOL\",\n \"RUN_TOOL\",\n \"RUN_MCP_TOOL\",\n \"INVOKE_TOOL\",\n \"INVOKE_MCP_TOOL\",\n ],\n description: \"Calls a tool from an MCP server to perform a specific task\",\n\n validate: async (runtime:
|
|
23
|
-
"import {\n type Action,\n type ActionResult,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { resourceSelectionTemplate } from \"../templates/resourceSelectionTemplate\";\nimport { MCP_SERVICE_NAME, type McpServer, type McpServerInfo } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport {\n handleResourceAnalysis,\n processResourceResult,\n sendInitialResponse,\n} from \"../utils/processing\";\nimport type { ResourceSelection } from \"../utils/schemas\";\nimport {\n createResourceSelectionFeedbackPrompt,\n validateResourceSelection,\n} from \"../utils/validation\";\nimport { withModelRetry } from \"../utils/wrapper\";\n\nfunction createResourceSelectionPrompt(composedState: State, userMessage: string): string {\n const mcpData = (composedState.values.mcp ?? {}) as Record<string, McpServerInfo>;\n const serverNames = Object.keys(mcpData);\n\n let resourcesDescription = \"\";\n for (const serverName of serverNames) {\n const server = mcpData[serverName];\n if (server.status !== \"connected\") continue;\n\n const resourceUris = Object.keys(server.resources ?? {});\n for (const uri of resourceUris) {\n const resource = server.resources[uri];\n resourcesDescription += `Resource: ${uri} (Server: ${serverName})\\n`;\n resourcesDescription += `Name: ${resource.name ?? \"No name available\"}\\n`;\n resourcesDescription += `Description: ${\n resource.description ?? \"No description available\"\n }\\n`;\n resourcesDescription += `MIME Type: ${resource.mimeType ?? \"Not specified\"}\\n\\n`;\n }\n }\n\n const enhancedState: State = {\n ...composedState,\n values: {\n ...composedState.values,\n resourcesDescription,\n userMessage,\n },\n };\n\n return composePromptFromState({\n state: enhancedState,\n template: resourceSelectionTemplate,\n });\n}\n\nexport const readResourceAction: Action = {\n name: \"READ_MCP_RESOURCE\",\n similes: [\n \"READ_RESOURCE\",\n \"READ_MCP_RESOURCE\",\n \"GET_RESOURCE\",\n \"GET_MCP_RESOURCE\",\n \"FETCH_RESOURCE\",\n \"FETCH_MCP_RESOURCE\",\n \"ACCESS_RESOURCE\",\n \"ACCESS_MCP_RESOURCE\",\n ],\n description: \"Reads a resource from an MCP server\",\n\n validate: async (runtime:
|
|
24
|
-
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport type { McpService } from \"./service\";\nimport { MCP_SERVICE_NAME } from \"./types\";\n\nexport const provider: Provider = {\n name: \"MCP\",\n description: \"Information about connected MCP servers, tools, and resources\",\n\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n return {\n values: {},\n data: {},\n text: \"No MCP servers are available.\",\n };\n }\n\n const providerData = mcpService.getProviderData();\n return {\n values: { mcpServers: JSON.stringify(providerData.values.mcp) },\n data: { mcpServerCount: Object.keys(providerData.data.mcp).length },\n text: providerData.text,\n };\n },\n};\n",
|
|
22
|
+
"import type {\n Action,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { MCP_SERVICE_NAME, type McpServer } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport { handleNoToolAvailable } from \"../utils/handler\";\nimport { handleToolResponse, processToolResult } from \"../utils/processing\";\nimport { createToolSelectionArgument, createToolSelectionName } from \"../utils/selection\";\n\nexport const callToolAction: Action = {\n name: \"CALL_MCP_TOOL\",\n similes: [\n \"CALL_TOOL\",\n \"CALL_MCP_TOOL\",\n \"USE_TOOL\",\n \"USE_MCP_TOOL\",\n \"EXECUTE_TOOL\",\n \"EXECUTE_MCP_TOOL\",\n \"RUN_TOOL\",\n \"RUN_MCP_TOOL\",\n \"INVOKE_TOOL\",\n \"INVOKE_MCP_TOOL\",\n ],\n description: \"Calls a tool from an MCP server to perform a specific task\",\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n const __avTextRaw = typeof message?.content?.text === \"string\" ? message.content.text : \"\";\n const __avText = __avTextRaw.toLowerCase();\n const __avKeywords = [\"call\", \"mcp\", \"tool\"];\n const __avKeywordOk =\n __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n const __avRegex = /\\b(?:call|mcp|tool)\\b/i;\n const __avRegexOk = __avRegex.test(__avText);\n const __avSource = String(message?.content?.source ?? message?.source ?? \"\");\n const __avExpectedSource = \"\";\n const __avSourceOk = __avExpectedSource\n ? __avSource === __avExpectedSource\n : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n const __avOptions = options && typeof options === \"object\" ? options : {};\n const __avInputOk =\n __avText.trim().length > 0 ||\n Object.keys(__avOptions as Record<string, unknown>).length > 0 ||\n Boolean(message?.content && typeof message.content === \"object\");\n\n if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n return false;\n }\n\n const __avLegacyValidate = async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state?: State\n ): Promise<boolean> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) return false;\n\n const servers = mcpService.getServers();\n return (\n servers.length > 0 &&\n servers.some(\n (server: McpServer) =>\n server.status === \"connected\" && server.tools && server.tools.length > 0\n )\n );\n };\n try {\n return Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const composedState = await runtime.composeState(message, [\"RECENT_MESSAGES\", \"MCP\"]);\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n throw new Error(\"MCP service not available\");\n }\n const mcpProvider = mcpService.getProviderData();\n\n try {\n const toolSelectionName = await createToolSelectionName({\n runtime,\n state: composedState,\n message,\n callback,\n mcpProvider,\n });\n if (!toolSelectionName || toolSelectionName.noToolAvailable) {\n return await handleNoToolAvailable(callback, toolSelectionName);\n }\n const { serverName, toolName } = toolSelectionName;\n\n const toolSelectionArgument = await createToolSelectionArgument({\n runtime,\n state: composedState,\n message,\n callback,\n mcpProvider,\n toolSelectionName,\n });\n if (!toolSelectionArgument) {\n return await handleNoToolAvailable(callback, toolSelectionName);\n }\n\n const result = await mcpService.callTool(\n serverName,\n toolName,\n toolSelectionArgument.toolArguments\n );\n\n const { toolOutput, hasAttachments, attachments } = processToolResult(\n result,\n serverName,\n toolName,\n runtime,\n message.entityId\n );\n\n const replyMemory = await handleToolResponse(\n runtime,\n message,\n serverName,\n toolName,\n toolSelectionArgument.toolArguments,\n toolOutput,\n hasAttachments,\n attachments,\n composedState,\n mcpProvider,\n callback\n );\n\n return {\n text: `Successfully called tool: ${serverName}/${toolName}. Reasoned response: ${replyMemory.content.text}`,\n values: {\n success: true,\n toolExecuted: true,\n serverName,\n toolName,\n hasAttachments,\n output: toolOutput,\n },\n data: {\n actionName: \"CALL_MCP_TOOL\",\n serverName,\n toolName,\n toolArgumentsJson: JSON.stringify(toolSelectionArgument.toolArguments),\n reasoning: toolSelectionName.reasoning,\n output: toolOutput,\n attachmentCount: attachments?.length ?? 0,\n },\n success: true,\n };\n } catch (error) {\n return await handleMcpError(\n composedState,\n mcpProvider,\n error,\n runtime,\n message,\n \"tool\",\n callback\n );\n }\n },\n\n examples: [\n [\n {\n name: \"{{user}}\",\n content: {\n text: \"Can you search for information about climate change?\",\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: \"I'll help you with that request. Let me access the right tool...\",\n actions: [\"CALL_MCP_TOOL\"],\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: \"I found the following information about climate change:\\n\\nClimate change refers to long-term shifts in temperatures and weather patterns. These shifts may be natural, but since the 1800s, human activities have been the main driver of climate change, primarily due to the burning of fossil fuels like coal, oil, and gas, which produces heat-trapping gases.\",\n actions: [\"CALL_MCP_TOOL\"],\n },\n },\n ],\n ],\n};\n",
|
|
23
|
+
"import {\n type Action,\n type ActionResult,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport type { McpService } from \"../service\";\nimport { resourceSelectionTemplate } from \"../templates/resourceSelectionTemplate\";\nimport { MCP_SERVICE_NAME, type McpServer, type McpServerInfo } from \"../types\";\nimport { handleMcpError } from \"../utils/error\";\nimport {\n handleResourceAnalysis,\n processResourceResult,\n sendInitialResponse,\n} from \"../utils/processing\";\nimport type { ResourceSelection } from \"../utils/schemas\";\nimport {\n createResourceSelectionFeedbackPrompt,\n validateResourceSelection,\n} from \"../utils/validation\";\nimport { withModelRetry } from \"../utils/wrapper\";\n\nfunction createResourceSelectionPrompt(composedState: State, userMessage: string): string {\n const mcpData = (composedState.values.mcp ?? {}) as Record<string, McpServerInfo>;\n const serverNames = Object.keys(mcpData);\n\n let resourcesDescription = \"\";\n for (const serverName of serverNames) {\n const server = mcpData[serverName];\n if (server.status !== \"connected\") continue;\n\n const resourceUris = Object.keys(server.resources ?? {});\n for (const uri of resourceUris) {\n const resource = server.resources[uri];\n resourcesDescription += `Resource: ${uri} (Server: ${serverName})\\n`;\n resourcesDescription += `Name: ${resource.name ?? \"No name available\"}\\n`;\n resourcesDescription += `Description: ${\n resource.description ?? \"No description available\"\n }\\n`;\n resourcesDescription += `MIME Type: ${resource.mimeType ?? \"Not specified\"}\\n\\n`;\n }\n }\n\n const enhancedState: State = {\n ...composedState,\n values: {\n ...composedState.values,\n resourcesDescription,\n userMessage,\n },\n };\n\n return composePromptFromState({\n state: enhancedState,\n template: resourceSelectionTemplate,\n });\n}\n\nexport const readResourceAction: Action = {\n name: \"READ_MCP_RESOURCE\",\n similes: [\n \"READ_RESOURCE\",\n \"READ_MCP_RESOURCE\",\n \"GET_RESOURCE\",\n \"GET_MCP_RESOURCE\",\n \"FETCH_RESOURCE\",\n \"FETCH_MCP_RESOURCE\",\n \"ACCESS_RESOURCE\",\n \"ACCESS_MCP_RESOURCE\",\n ],\n description: \"Reads a resource from an MCP server\",\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n const __avTextRaw = typeof message?.content?.text === \"string\" ? message.content.text : \"\";\n const __avText = __avTextRaw.toLowerCase();\n const __avKeywords = [\"read\", \"mcp\", \"resource\"];\n const __avKeywordOk =\n __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n const __avRegex = /\\b(?:read|mcp|resource)\\b/i;\n const __avRegexOk = __avRegex.test(__avText);\n const __avSource = String(message?.content?.source ?? message?.source ?? \"\");\n const __avExpectedSource = \"\";\n const __avSourceOk = __avExpectedSource\n ? __avSource === __avExpectedSource\n : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n const __avOptions = options && typeof options === \"object\" ? options : {};\n const __avInputOk =\n __avText.trim().length > 0 ||\n Object.keys(__avOptions as Record<string, unknown>).length > 0 ||\n Boolean(message?.content && typeof message.content === \"object\");\n\n if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n return false;\n }\n\n const __avLegacyValidate = async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state?: State\n ): Promise<boolean> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) return false;\n\n const servers = mcpService.getServers();\n return (\n servers.length > 0 &&\n servers.some(\n (server: McpServer) =>\n server.status === \"connected\" && server.resources && server.resources.length > 0\n )\n );\n };\n try {\n return Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const composedState = await runtime.composeState(message, [\"RECENT_MESSAGES\", \"MCP\"]);\n\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n throw new Error(\"MCP service not available\");\n }\n\n const mcpProvider = mcpService.getProviderData();\n\n try {\n await sendInitialResponse(callback);\n\n const resourceSelectionPrompt = createResourceSelectionPrompt(\n composedState,\n message.content.text ?? \"\"\n );\n\n const resourceSelection = (await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: resourceSelectionPrompt,\n })) as string;\n\n const parsedSelection = await withModelRetry<ResourceSelection>({\n runtime,\n state: composedState,\n message,\n callback,\n input: resourceSelection,\n validationFn: (data) => validateResourceSelection(data),\n createFeedbackPromptFn: (originalResponse, errorMessage, state, userMessage) =>\n createResourceSelectionFeedbackPrompt(\n typeof originalResponse === \"string\"\n ? originalResponse\n : JSON.stringify(originalResponse),\n errorMessage,\n state,\n userMessage\n ),\n failureMsg: `I'm having trouble finding the resource you're looking for. Could you provide more details about what you need?`,\n retryCount: 0,\n });\n\n if (!parsedSelection || parsedSelection.noResourceAvailable) {\n const responseText =\n \"I don't have a specific resource that contains the information you're looking for. Let me try to assist you directly instead.\";\n\n if (callback && parsedSelection?.noResourceAvailable) {\n await callback({\n text: responseText,\n actions: [\"REPLY\"],\n });\n }\n return {\n text: responseText,\n values: {\n success: true,\n noResourceAvailable: true,\n fallbackToDirectAssistance: true,\n },\n data: {\n actionName: \"READ_MCP_RESOURCE\",\n noResourceAvailable: true,\n reason: parsedSelection?.reasoning ?? \"No appropriate resource available\",\n },\n success: true,\n };\n }\n\n const { serverName, uri } = parsedSelection;\n\n const result = await mcpService.readResource(serverName, uri);\n\n const { resourceContent, resourceMeta } = processResourceResult(result, uri);\n\n await handleResourceAnalysis(\n runtime,\n message,\n uri,\n serverName,\n resourceContent,\n resourceMeta,\n callback\n );\n\n return {\n text: `Successfully read resource: ${uri}`,\n values: {\n success: true,\n resourceRead: true,\n serverName,\n uri,\n },\n data: {\n actionName: \"READ_MCP_RESOURCE\",\n serverName,\n uri,\n reasoning: parsedSelection?.reasoning,\n resourceMeta,\n contentLength: resourceContent?.length ?? 0,\n },\n success: true,\n };\n } catch (error) {\n return await handleMcpError(\n composedState,\n mcpProvider,\n error,\n runtime,\n message,\n \"resource\",\n callback\n );\n }\n },\n\n examples: [\n [\n {\n name: \"{{user}}\",\n content: {\n text: \"Can you get the documentation about installing elizaOS?\",\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: `I'll retrieve that information for you. Let me access the resource...`,\n actions: [\"READ_MCP_RESOURCE\"],\n },\n },\n {\n name: \"{{assistant}}\",\n content: {\n text: `elizaOS installation is straightforward. You'll need Node.js 23+ and Git installed. For Windows users, WSL 2 is required. The quickest way to get started is by cloning the elizaOS starter repository with \\`git clone https://github.com/elizaos/eliza-starter.git\\`, then run \\`cd eliza-starter && cp .env.example .env && bun i && bun run build && bun start\\`. This will set up a development environment with the core features enabled. After starting, you can access the web interface at http://localhost:3000 to interact with your agent.`,\n actions: [\"READ_MCP_RESOURCE\"],\n },\n },\n ],\n ],\n};\n",
|
|
24
|
+
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport type { McpService } from \"./service\";\nimport { MCP_SERVICE_NAME } from \"./types\";\n\nexport const provider: Provider = {\n name: \"MCP\",\n description: \"Information about connected MCP servers, tools, and resources\",\n\n dynamic: true,\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {\n const mcpService = runtime.getService<McpService>(MCP_SERVICE_NAME);\n if (!mcpService) {\n return {\n values: {},\n data: {},\n text: \"No MCP servers are available.\",\n };\n }\n\n const providerData = mcpService.getProviderData();\n return {\n values: { mcpServers: JSON.stringify(providerData.values.mcp) },\n data: { mcpServerCount: Object.keys(providerData.data.mcp).length },\n text: providerData.text,\n };\n },\n};\n",
|
|
25
25
|
"import { type IAgentRuntime, logger, Service } from \"@elizaos/core\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { SSEClientTransport } from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { StdioClientTransport } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport type {\n CallToolResult,\n Resource,\n ResourceTemplate,\n Tool,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport type { JSONSchema7 } from \"json-schema\";\nimport {\n createMcpToolCompatibilitySync as createMcpToolCompatibility,\n type McpToolCompatibility,\n} from \"./tool-compatibility\";\nimport {\n BACKOFF_MULTIPLIER,\n type ConnectionState,\n DEFAULT_MCP_TIMEOUT_SECONDS,\n DEFAULT_PING_CONFIG,\n type HttpMcpServerConfig,\n INITIAL_RETRY_DELAY,\n MAX_RECONNECT_ATTEMPTS,\n MCP_SERVICE_NAME,\n type McpConnection,\n type McpProvider,\n type McpResourceResponse,\n type McpServer,\n type McpServerConfig,\n type McpSettings,\n type PingConfig,\n type StdioMcpServerConfig,\n} from \"./types\";\nimport { buildMcpProviderData } from \"./utils/mcp\";\n\nexport class McpService extends Service {\n static serviceType: string = MCP_SERVICE_NAME;\n capabilityDescription = \"Enables the agent to interact with MCP (Model Context Protocol) servers\";\n\n private connections: Map<string, McpConnection> = new Map();\n private connectionStates: Map<string, ConnectionState> = new Map();\n private mcpProvider: McpProvider = {\n values: { mcp: {}, mcpText: \"\" },\n data: { mcp: {} },\n text: \"\",\n };\n private pingConfig: PingConfig = DEFAULT_PING_CONFIG;\n private toolCompatibility: McpToolCompatibility | null = null;\n private compatibilityInitialized = false;\n\n private initializationPromise: Promise<void> | null = null;\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n this.initializationPromise = this.initializeMcpServers();\n }\n\n static async start(runtime: IAgentRuntime): Promise<McpService> {\n const service = new McpService(runtime);\n if (service.initializationPromise) {\n await service.initializationPromise;\n }\n return service;\n }\n\n async waitForInitialization(): Promise<void> {\n if (this.initializationPromise) {\n await this.initializationPromise;\n }\n }\n\n async stop(): Promise<void> {\n for (const [name] of this.connections) {\n await this.deleteConnection(name);\n }\n this.connections.clear();\n for (const state of this.connectionStates.values()) {\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n }\n this.connectionStates.clear();\n }\n\n private async initializeMcpServers(): Promise<void> {\n const mcpSettings = this.getMcpSettings();\n\n if (!mcpSettings || !mcpSettings.servers || Object.keys(mcpSettings.servers).length === 0) {\n this.mcpProvider = buildMcpProviderData([]);\n return;\n }\n\n await this.updateServerConnections(mcpSettings.servers);\n const servers = this.getServers();\n this.mcpProvider = buildMcpProviderData(servers);\n }\n\n private getMcpSettings(): McpSettings | undefined {\n const rawSettings = this.runtime.getSetting(\"mcp\");\n let settings: McpSettings | null | undefined = null;\n\n if (rawSettings && typeof rawSettings === \"object\" && !Array.isArray(rawSettings)) {\n const parsed = rawSettings as Record<string, unknown>;\n if (\"servers\" in parsed && typeof parsed.servers === \"object\" && parsed.servers !== null) {\n settings = parsed as unknown as McpSettings;\n }\n }\n\n if (!settings || !settings.servers) {\n const characterSettings = this.runtime.character.settings;\n if (\n characterSettings &&\n typeof characterSettings === \"object\" &&\n \"mcp\" in characterSettings\n ) {\n const characterMcpSettings = characterSettings.mcp;\n if (\n characterMcpSettings &&\n typeof characterMcpSettings === \"object\" &&\n \"servers\" in characterMcpSettings\n ) {\n settings = characterMcpSettings as unknown as McpSettings;\n }\n }\n }\n\n if (settings && typeof settings === \"object\" && settings.servers) {\n return settings;\n }\n\n return undefined;\n }\n\n private async updateServerConnections(\n serverConfigs: Readonly<Record<string, McpServerConfig>>\n ): Promise<void> {\n const currentNames = new Set(this.connections.keys());\n const newNames = new Set(Object.keys(serverConfigs));\n\n for (const name of currentNames) {\n if (!newNames.has(name)) {\n await this.deleteConnection(name);\n }\n }\n\n const connectionPromises = Object.entries(serverConfigs).map(async ([name, config]) => {\n const currentConnection = this.connections.get(name);\n if (!currentConnection) {\n await this.initializeConnection(name, config);\n } else if (JSON.stringify(config) !== currentConnection.server.config) {\n await this.deleteConnection(name);\n await this.initializeConnection(name, config);\n }\n });\n\n await Promise.allSettled(connectionPromises);\n }\n\n private async initializeConnection(name: string, config: McpServerConfig): Promise<void> {\n await this.deleteConnection(name);\n const state: ConnectionState = {\n status: \"connecting\",\n reconnectAttempts: 0,\n consecutivePingFailures: 0,\n };\n this.connectionStates.set(name, state);\n\n const client = new Client({ name: \"elizaOS\", version: \"1.0.0\" }, { capabilities: {} });\n const transport: StdioClientTransport | SSEClientTransport =\n config.type === \"stdio\"\n ? await this.buildStdioClientTransport(name, config)\n : await this.buildHttpClientTransport(name, config);\n\n const connection: McpConnection = {\n server: {\n name,\n config: JSON.stringify(config),\n status: \"connecting\",\n },\n client,\n transport,\n };\n this.connections.set(name, connection);\n this.setupTransportHandlers(name, connection, state);\n await client.connect(transport);\n\n const capabilities = client.getServerCapabilities();\n const tools = await this.fetchToolsList(name);\n const resources = capabilities?.resources ? await this.fetchResourcesList(name) : [];\n const resourceTemplates = capabilities?.resources\n ? await this.fetchResourceTemplatesList(name)\n : [];\n\n connection.server = {\n status: \"connected\",\n name,\n config: JSON.stringify(config),\n error: \"\",\n tools,\n resources,\n resourceTemplates,\n };\n state.status = \"connected\";\n state.lastConnected = new Date();\n state.reconnectAttempts = 0;\n state.consecutivePingFailures = 0;\n this.startPingMonitoring(name);\n }\n\n private setupTransportHandlers(\n name: string,\n connection: McpConnection,\n _state: ConnectionState\n ): void {\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n const isHttpTransport = config.type !== \"stdio\";\n\n connection.transport.onerror = async (error): Promise<void> => {\n const errorMessage = error?.message ?? String(error);\n const isExpectedTimeout =\n isHttpTransport &&\n (errorMessage === \"undefined\" ||\n errorMessage === \"\" ||\n errorMessage.includes(\"SSE error\") ||\n errorMessage.includes(\"timeout\"));\n\n if (!isExpectedTimeout) {\n logger.error({ error, serverName: name }, `Transport error for \"${name}\"`);\n connection.server.status = \"disconnected\";\n this.appendErrorMessage(connection, error.message);\n }\n\n if (!isHttpTransport) {\n this.handleDisconnection(name, error);\n }\n };\n\n connection.transport.onclose = async (): Promise<void> => {\n if (!isHttpTransport) {\n connection.server.status = \"disconnected\";\n this.handleDisconnection(name, new Error(\"Transport closed\"));\n }\n };\n }\n\n private startPingMonitoring(name: string): void {\n const connection = this.connections.get(name);\n if (!connection) return;\n\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n const isHttpTransport = config.type !== \"stdio\";\n\n if (isHttpTransport) {\n return;\n }\n\n const state = this.connectionStates.get(name);\n if (!state || !this.pingConfig.enabled) return;\n if (state.pingInterval) clearInterval(state.pingInterval);\n state.pingInterval = setInterval(() => {\n this.sendPing(name).catch((err: Error) => {\n logger.warn({ error: err.message, serverName: name }, `Ping failed for ${name}`);\n this.handlePingFailure(name, err);\n });\n }, this.pingConfig.intervalMs);\n }\n\n private async sendPing(name: string): Promise<void> {\n const connection = this.connections.get(name);\n if (!connection) throw new Error(`No connection for ping: ${name}`);\n\n await Promise.race([\n connection.client.listTools(),\n new Promise<never>((_, reject) =>\n setTimeout(() => reject(new Error(\"Ping timeout\")), this.pingConfig.timeoutMs)\n ),\n ]);\n\n const state = this.connectionStates.get(name);\n if (state) state.consecutivePingFailures = 0;\n }\n\n private handlePingFailure(name: string, error: Error): void {\n const state = this.connectionStates.get(name);\n if (!state) return;\n state.consecutivePingFailures++;\n if (state.consecutivePingFailures >= this.pingConfig.failuresBeforeDisconnect) {\n this.handleDisconnection(name, error);\n }\n }\n\n private handleDisconnection(name: string, error: Error | unknown): void {\n const state = this.connectionStates.get(name);\n if (!state) return;\n state.status = \"disconnected\";\n state.lastError = error instanceof Error ? error : new Error(String(error));\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n if (state.reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {\n return;\n }\n const delay = INITIAL_RETRY_DELAY * BACKOFF_MULTIPLIER ** state.reconnectAttempts;\n state.reconnectTimeout = setTimeout(async () => {\n state.reconnectAttempts++;\n const connection = this.connections.get(name);\n const config = connection?.server?.config;\n if (config) {\n try {\n await this.initializeConnection(name, JSON.parse(config));\n } catch (err) {\n this.handleDisconnection(name, err);\n }\n }\n }, delay);\n }\n\n async deleteConnection(name: string): Promise<void> {\n const connection = this.connections.get(name);\n if (connection) {\n await connection.transport.close();\n await connection.client.close();\n this.connections.delete(name);\n }\n const state = this.connectionStates.get(name);\n if (state) {\n if (state.pingInterval) clearInterval(state.pingInterval);\n if (state.reconnectTimeout) clearTimeout(state.reconnectTimeout);\n this.connectionStates.delete(name);\n }\n }\n\n private getServerConnection(serverName: string): McpConnection | undefined {\n return this.connections.get(serverName);\n }\n\n private async buildStdioClientTransport(\n name: string,\n config: StdioMcpServerConfig\n ): Promise<StdioClientTransport> {\n if (!config.command) {\n throw new Error(`Missing command for stdio MCP server ${name}`);\n }\n\n return new StdioClientTransport({\n command: config.command,\n args: config.args ? [...config.args] : undefined,\n env: {\n ...config.env,\n ...(process.env.PATH ? { PATH: process.env.PATH } : {}),\n },\n stderr: \"pipe\",\n cwd: config.cwd,\n });\n }\n\n private async buildHttpClientTransport(\n name: string,\n config: HttpMcpServerConfig\n ): Promise<SSEClientTransport> {\n if (!config.url) {\n throw new Error(`Missing URL for HTTP MCP server ${name}`);\n }\n\n return new SSEClientTransport(new URL(config.url));\n }\n\n private appendErrorMessage(connection: McpConnection, error: string): void {\n const newError = connection.server.error ? `${connection.server.error}\\n${error}` : error;\n connection.server.error = newError;\n }\n\n private async fetchToolsList(serverName: string): Promise<Tool[]> {\n const connection = this.getServerConnection(serverName);\n if (!connection) {\n return [];\n }\n\n const response = await connection.client.listTools();\n\n const tools = (response?.tools ?? []).map((tool) => {\n const processedTool = { ...tool };\n\n if (tool.inputSchema) {\n if (!this.compatibilityInitialized) {\n this.initializeToolCompatibility();\n }\n\n processedTool.inputSchema = this.applyToolCompatibility(\n tool.inputSchema as JSONSchema7\n ) as typeof tool.inputSchema;\n }\n\n return processedTool;\n });\n\n return tools;\n }\n\n private async fetchResourcesList(serverName: string): Promise<Resource[]> {\n const connection = this.getServerConnection(serverName);\n if (!connection) {\n return [];\n }\n\n const response = await connection.client.listResources();\n return response?.resources ?? [];\n }\n\n private async fetchResourceTemplatesList(serverName: string): Promise<ResourceTemplate[]> {\n const connection = this.getServerConnection(serverName);\n if (!connection) {\n return [];\n }\n\n const response = await connection.client.listResourceTemplates();\n return response?.resourceTemplates ?? [];\n }\n\n public getServers(): McpServer[] {\n return Array.from(this.connections.values())\n .filter((conn) => !conn.server.disabled)\n .map((conn) => conn.server);\n }\n\n public getProviderData(): McpProvider {\n return this.mcpProvider;\n }\n\n public async callTool(\n serverName: string,\n toolName: string,\n toolArguments?: Readonly<Record<string, unknown>>\n ): Promise<CallToolResult> {\n const connection = this.connections.get(serverName);\n if (!connection) {\n throw new Error(`No connection found for server: ${serverName}`);\n }\n if (connection.server.disabled) {\n throw new Error(`Server \"${serverName}\" is disabled`);\n }\n\n let timeout = DEFAULT_MCP_TIMEOUT_SECONDS;\n const config = JSON.parse(connection.server.config) as McpServerConfig;\n if (config.type === \"stdio\" && config.timeoutInMillis) {\n timeout = config.timeoutInMillis;\n }\n\n const result = await connection.client.callTool(\n {\n name: toolName,\n arguments: toolArguments ? { ...toolArguments } : undefined,\n },\n undefined,\n { timeout }\n );\n if (!result.content) {\n throw new Error(\"Invalid tool result: missing content array\");\n }\n return result as CallToolResult;\n }\n\n public async readResource(serverName: string, uri: string): Promise<McpResourceResponse> {\n const connection = this.connections.get(serverName);\n if (!connection) {\n throw new Error(`No connection found for server: ${serverName}`);\n }\n if (connection.server.disabled) {\n throw new Error(`Server \"${serverName}\" is disabled`);\n }\n return await connection.client.readResource({ uri });\n }\n\n public async restartConnection(serverName: string): Promise<void> {\n const connection = this.connections.get(serverName);\n const config = connection?.server?.config;\n if (config) {\n connection.server.status = \"connecting\";\n connection.server.error = \"\";\n await this.deleteConnection(serverName);\n await this.initializeConnection(serverName, JSON.parse(config));\n }\n }\n\n private initializeToolCompatibility(): void {\n if (this.compatibilityInitialized) return;\n\n this.toolCompatibility = createMcpToolCompatibility(this.runtime);\n this.compatibilityInitialized = true;\n }\n\n public applyToolCompatibility(toolSchema: JSONSchema7): JSONSchema7 {\n if (!this.compatibilityInitialized) {\n this.initializeToolCompatibility();\n }\n\n if (!this.toolCompatibility || !toolSchema) {\n return toolSchema;\n }\n\n return this.toolCompatibility.transformToolSchema(toolSchema);\n }\n}\n",
|
|
26
26
|
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { detectModelProvider, type McpToolCompatibility } from \"./base\";\n\nexport {\n type ArrayConstraints,\n McpToolCompatibility,\n type ModelInfo,\n type ModelProvider,\n type NumberConstraints,\n type ObjectConstraints,\n type SchemaConstraints,\n type StringConstraints,\n} from \"./base\";\n\nexport { detectModelProvider };\n\nexport async function createMcpToolCompatibility(\n runtime: IAgentRuntime\n): Promise<McpToolCompatibility | null> {\n const modelInfo = detectModelProvider(runtime);\n\n switch (modelInfo.provider) {\n case \"openai\": {\n const { OpenAIMcpCompatibility } = await import(\"./providers/openai.js\");\n return new OpenAIMcpCompatibility(modelInfo);\n }\n case \"anthropic\": {\n const { AnthropicMcpCompatibility } = await import(\"./providers/anthropic.js\");\n return new AnthropicMcpCompatibility(modelInfo);\n }\n case \"google\": {\n const { GoogleMcpCompatibility } = await import(\"./providers/google.js\");\n return new GoogleMcpCompatibility(modelInfo);\n }\n default:\n return null;\n }\n}\n\nexport function createMcpToolCompatibilitySync(\n runtime: IAgentRuntime\n): McpToolCompatibility | null {\n const modelInfo = detectModelProvider(runtime);\n\n switch (modelInfo.provider) {\n case \"openai\": {\n const { OpenAIMcpCompatibility } = require(\"./providers/openai\");\n return new OpenAIMcpCompatibility(modelInfo);\n }\n case \"anthropic\": {\n const { AnthropicMcpCompatibility } = require(\"./providers/anthropic\");\n return new AnthropicMcpCompatibility(modelInfo);\n }\n case \"google\": {\n const { GoogleMcpCompatibility } = require(\"./providers/google\");\n return new GoogleMcpCompatibility(modelInfo);\n }\n default:\n return null;\n }\n}\n"
|
|
27
27
|
],
|
|
28
|
-
"mappings": "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",
|
|
29
|
-
"debugId": "
|
|
28
|
+
"mappings": "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",
|
|
29
|
+
"debugId": "3F220FC71C03FFDC64756E2164756E21",
|
|
30
30
|
"names": []
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAI5F,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAI5F,eAAO,MAAM,QAAQ,EAAE,QAsBtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-mcp",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.7",
|
|
4
4
|
"description": "elizaOS plugin to integrate with MCP (Model Context Protocol) servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/node/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"build:ts": "bun run build.ts",
|
|
38
38
|
"dev": "bun --hot build.ts",
|
|
39
39
|
"clean": "rm -rf dist .turbo node_modules",
|
|
40
|
-
"test": "vitest run",
|
|
40
|
+
"test": "vitest run --config vitest.config.ts --passWithNoTests",
|
|
41
41
|
"typecheck": "tsc --noEmit",
|
|
42
42
|
"lint": "bunx @biomejs/biome check --write --unsafe .",
|
|
43
43
|
"lint:check": "bunx @biomejs/biome check .",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
|
-
"
|
|
81
|
+
"milady": {
|
|
82
82
|
"platforms": [
|
|
83
83
|
"node"
|
|
84
84
|
],
|