MCPcopy Create free account
hub / github.com/cloudflare/mcp / registerNonCodemodeTools

Function registerNonCodemodeTools

src/tools/non-codemode.ts:24–69  ·  view source on GitHub ↗
(server: McpServer, props: AuthProps)

Source from the content-addressed store, hash-verified

22 * `tools/call` validates and dispatches only the requested operation.
23 */
24export async function registerNonCodemodeTools(server: McpServer, props: AuthProps): Promise<void> {
25 const tools = await getNonCodemodeTools()
26 const toolsByName = await getNonCodemodeToolMap()
27 const resolvedAccountId = autoResolvedAccountId(props)
28
29 server.server.registerCapabilities({ tools: { listChanged: false } })
30
31 server.server.setRequestHandler('tools/list', () => ({
32 tools: [
33 DOCS_TOOL,
34 ...tools.map((tool) => toWireTool(toolForAccountAccess(tool, resolvedAccountId, props)))
35 ]
36 }))
37
38 server.server.setRequestHandler('tools/call', async (request) => {
39 const name = request.params.name
40 let result: CallToolResult
41
42 try {
43 if (name === DOCS_TOOL.name) {
44 const parsed = z.object({ query: z.string() }).safeParse(request.params.arguments ?? {})
45 result = parsed.success
46 ? await runDocsTool(parsed.data.query)
47 : validationError(name, parsed.error)
48 } else {
49 const baseTool = toolsByName.get(name)
50 if (!baseTool) {
51 result = toolError(`Tool ${name} not found`)
52 } else {
53 const tool = toolForAccountAccess(baseTool, resolvedAccountId, props)
54 const parsed = z
55 .object(zodInputSchemaFromJson(tool.inputSchema))
56 .safeParse(request.params.arguments ?? {})
57 result = parsed.success
58 ? await callNonCodemodeTool(baseTool, parsed.data, resolvedAccountId, props.accessToken)
59 : validationError(name, parsed.error)
60 }
61 }
62 } catch (error) {
63 result = toolError(error instanceof Error ? error.message : String(error))
64 }
65
66 recordToolCall(props, name, result.isError === true)
67 return result
68 })
69}
70
71async function callNonCodemodeTool(
72 tool: NonCodemodeTool,

Callers 1

createServerFunction · 0.90

Calls 12

getNonCodemodeToolsFunction · 0.90
getNonCodemodeToolMapFunction · 0.90
autoResolvedAccountIdFunction · 0.90
runDocsToolFunction · 0.90
zodInputSchemaFromJsonFunction · 0.90
recordToolCallFunction · 0.90
toWireToolFunction · 0.85
toolForAccountAccessFunction · 0.85
validationErrorFunction · 0.85
toolErrorFunction · 0.85
callNonCodemodeToolFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected