MCPcopy
hub / github.com/Effect-TS/effect / McpServer

Class McpServer

packages/ai/ai/src/McpServer.ts:74–306  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72 * @category McpServer
73 */
74export class McpServer extends Context.Tag("@effect/ai/McpServer")<
75 McpServer,
76 {
77 readonly notifications: RpcClient.RpcClient<RpcGroup.Rpcs<typeof ServerNotificationRpcs>>
78 readonly notificationsMailbox: Mailbox.ReadonlyMailbox<RpcMessage.Request<any>>
79 readonly initializedClients: Set<number>
80
81 readonly tools: ReadonlyArray<Tool>
82 readonly addTool: (options: {
83 readonly tool: Tool
84 readonly handle: (payload: any) => Effect.Effect<CallToolResult, never, McpServerClient>
85 }) => Effect.Effect<void>
86 readonly callTool: (
87 requests: typeof CallTool.payloadSchema.Type
88 ) => Effect.Effect<CallToolResult, InternalError | InvalidParams, McpServerClient>
89
90 readonly resources: ReadonlyArray<Resource>
91 readonly addResource: (
92 resource: Resource,
93 handle: Effect.Effect<typeof ReadResourceResult.Type, InternalError, McpServerClient>
94 ) => Effect.Effect<void>
95
96 readonly resourceTemplates: ReadonlyArray<ResourceTemplate>
97 readonly addResourceTemplate: (options: {
98 readonly template: ResourceTemplate
99 readonly routerPath: string
100 readonly completions: Record<string, (input: string) => Effect.Effect<CompleteResult, InternalError>>
101 readonly handle: (uri: string, params: Array<string>) => Effect.Effect<
102 typeof ReadResourceResult.Type,
103 InvalidParams | InternalError,
104 McpServerClient
105 >
106 }) => Effect.Effect<void>
107
108 readonly findResource: (uri: string) => Effect.Effect<
109 typeof ReadResourceResult.Type,
110 InvalidParams | InternalError,
111 McpServerClient
112 >
113
114 readonly prompts: ReadonlyArray<Prompt>
115 readonly addPrompt: (options: {
116 readonly prompt: Prompt
117 readonly completions: Record<
118 string,
119 (input: string) => Effect.Effect<CompleteResult, InternalError, McpServerClient>
120 >
121 readonly handle: (
122 params: Record<string, string>
123 ) => Effect.Effect<GetPromptResult, InternalError | InvalidParams, McpServerClient>
124 }) => Effect.Effect<void>
125 readonly getPromptResult: (
126 request: typeof GetPrompt.payloadSchema.Type
127 ) => Effect.Effect<GetPromptResult, InternalError | InvalidParams, McpServerClient>
128
129 readonly completion: (
130 complete: typeof Complete.payloadSchema.Type
131 ) => Effect.Effect<CompleteResult, InternalError, McpServerClient>

Callers

nothing calls this directly

Calls 13

makeUriMatcherFunction · 0.85
NumberInterface · 0.85
entriesMethod · 0.80
keysMethod · 0.80
handleFunction · 0.70
handlerFunction · 0.70
makeMethod · 0.65
ofMethod · 0.65
setMethod · 0.65
getMethod · 0.65
failMethod · 0.65
addMethod · 0.65

Tested by

no test coverage detected