MCPcopy Create free account
hub / github.com/adcontextprotocol/adcp / callTool

Function callTool

scripts/gen-governance-audit-examples.ts:42–60  ·  view source on GitHub ↗
(
  server: ReturnType<typeof createTrainingAgentServer>,
  toolName: string,
  args: Record<string, unknown>,
)

Source from the content-addressed store, hash-verified

40// using the same pattern + this script should switch together; consider
41// extracting a shared `simulateCallTool` helper at that point.
42async function callTool(
43 server: ReturnType<typeof createTrainingAgentServer>,
44 toolName: string,
45 args: Record<string, unknown>,
46): Promise<{ result: Record<string, unknown>; isError?: boolean }> {
47 const requestHandlers = (server as unknown as { _requestHandlers: Map<string, (req: unknown, ctx: unknown) => Promise<{ structuredContent?: unknown; content?: Array<{ text?: string }>; isError?: boolean }>> })._requestHandlers;
48 const handler = requestHandlers.get('tools/call');
49 if (!handler) throw new Error('CallTool handler not found');
50 const response = await handler(
51 { method: 'tools/call', params: { name: toolName, arguments: withIdempotencyKey(toolName, args) } },
52 {},
53 );
54 const text = response.content?.[0]?.text;
55 const parsed = (response.structuredContent ?? (text ? JSON.parse(text) : {})) as Record<string, unknown>;
56 const errorInBody = Array.isArray(parsed.errors) && parsed.errors.length > 0 ? parsed.errors[0] : undefined;
57 const adcpError = parsed.adcp_error as Record<string, unknown> | undefined;
58 const result = (adcpError ?? errorInBody ?? parsed) as Record<string, unknown>;
59 return { result, isError: response.isError };
60}
61
62function tenant(domain: string) {
63 return { account: { brand: { domain } } };

Callers 4

runApprovedScenarioFunction · 0.70
runConditionsScenarioFunction · 0.70
runDeniedScenarioFunction · 0.70
runModeComparisonFunction · 0.70

Calls 3

handlerFunction · 0.85
withIdempotencyKeyFunction · 0.70
getMethod · 0.45

Tested by

no test coverage detected