Skip to content

Commit 3d32ce6

Browse files
committed
Convenience methods for Client
1 parent 8be664b commit 3d32ce6

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed

src/client/index.ts

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,24 @@ import {
1111
Request,
1212
Result,
1313
ServerCapabilities,
14+
CompleteRequest,
15+
GetPromptRequest,
16+
ListPromptsRequest,
17+
ListResourcesRequest,
18+
ReadResourceRequest,
19+
SubscribeRequest,
20+
UnsubscribeRequest,
21+
CallToolRequest,
22+
ListToolsRequest,
23+
CompleteResultSchema,
24+
GetPromptResultSchema,
25+
ListPromptsResultSchema,
26+
ListResourcesResultSchema,
27+
ReadResourceResultSchema,
28+
CallToolResultSchema,
29+
ListToolsResultSchema,
30+
EmptyResultSchema,
31+
LoggingLevel,
1432
} from "../types.js";
1533

1634
/**
@@ -103,4 +121,75 @@ export class Client<
103121
getServerVersion(): Implementation | undefined {
104122
return this._serverVersion;
105123
}
124+
125+
async ping() {
126+
return this.request({ method: "ping" }, EmptyResultSchema);
127+
}
128+
129+
async complete(params: CompleteRequest["params"]) {
130+
return this.request(
131+
{ method: "completion/complete", params },
132+
CompleteResultSchema,
133+
);
134+
}
135+
136+
async setLoggingLevel(level: LoggingLevel) {
137+
return this.request(
138+
{ method: "logging/setLevel", params: { level } },
139+
EmptyResultSchema,
140+
);
141+
}
142+
143+
async getPrompt(params: GetPromptRequest["params"]) {
144+
return this.request(
145+
{ method: "prompts/get", params },
146+
GetPromptResultSchema,
147+
);
148+
}
149+
150+
async listPrompts(params?: ListPromptsRequest["params"]) {
151+
return this.request(
152+
{ method: "prompts/list", params },
153+
ListPromptsResultSchema,
154+
);
155+
}
156+
157+
async listResources(params?: ListResourcesRequest["params"]) {
158+
return this.request(
159+
{ method: "resources/list", params },
160+
ListResourcesResultSchema,
161+
);
162+
}
163+
164+
async readResource(params: ReadResourceRequest["params"]) {
165+
return this.request(
166+
{ method: "resources/read", params },
167+
ReadResourceResultSchema,
168+
);
169+
}
170+
171+
async subscribeResource(params: SubscribeRequest["params"]) {
172+
return this.request(
173+
{ method: "resources/subscribe", params },
174+
EmptyResultSchema,
175+
);
176+
}
177+
178+
async unsubscribeResource(params: UnsubscribeRequest["params"]) {
179+
return this.request(
180+
{ method: "resources/unsubscribe", params },
181+
EmptyResultSchema,
182+
);
183+
}
184+
185+
async callTool(params: CallToolRequest["params"]) {
186+
return this.request({ method: "tools/call", params }, CallToolResultSchema);
187+
}
188+
189+
async listTools(params?: ListToolsRequest["params"]) {
190+
return this.request(
191+
{ method: "tools/list", params },
192+
ListToolsResultSchema,
193+
);
194+
}
106195
}

0 commit comments

Comments
 (0)