Skip to content
Source
Sign inSign up

mcpApps.ts

33 lines1.3 KB

1import { WS_METHODS } from "@t3tools/contracts";
2import type { Atom } from "effect/reactivity";
3​
4import type { EnvironmentRegistry } from "../connection/registry.ts";
5import { createEnvironmentRpcCommand, createEnvironmentRpcQueryAtomFamily } from "./runtime.ts";
6​
7export function createMcpAppEnvironmentAtoms<R, E>(
8 runtime: Atom.AtomRuntime<EnvironmentRegistry | R, E>,
9) {
10 return {
11 callTool: createEnvironmentRpcCommand(runtime, {
12 label: "environment-command:mcp-apps:call-tool",
13 tag: WS_METHODS.mcpAppsCallTool,
14 }),
15 toolInfo: createEnvironmentRpcCommand(runtime, {
16 label: "environment-command:mcp-apps:tool-info",
17 tag: WS_METHODS.mcpAppsToolInfo,
18 }),
19 /** The tool definition an app reads from its host context. */
20 toolInfoQuery: createEnvironmentRpcQueryAtomFamily(runtime, {
21 label: "environment-data:mcp-apps:tool-info",
22 tag: WS_METHODS.mcpAppsToolInfo,
23 }),
24 readResource: createEnvironmentRpcCommand(runtime, {
25 label: "environment-command:mcp-apps:read-resource",
26 tag: WS_METHODS.mcpAppsReadResource,
27 }),
28 updateModelContext: createEnvironmentRpcCommand(runtime, {
29 label: "environment-command:mcp-apps:update-model-context",
30 tag: WS_METHODS.mcpAppsUpdateModelContext,
31 }),
32 };