Add Python stubs

This commit is contained in:
Justin Spahr-Summers 2024-11-21 15:10:50 +00:00
commit a2e6868c40
No known key found for this signature in database

View file

@ -36,8 +36,10 @@ flowchart LR
The protocol layer handles message framing, request/response linking, and high-level communication patterns. The protocol layer handles message framing, request/response linking, and high-level communication patterns.
```typescript <Tabs>
class Protocol<Request, Notification, Result> { <Tab title="TypeScript">
```typescript
class Protocol<Request, Notification, Result> {
// Handle incoming requests // Handle incoming requests
setRequestHandler<T>(schema: T, handler: (request: T, extra: RequestHandlerExtra) => Promise<Result>): void setRequestHandler<T>(schema: T, handler: (request: T, extra: RequestHandlerExtra) => Promise<Result>): void
@ -49,8 +51,15 @@ class Protocol<Request, Notification, Result> {
// Send one-way notifications // Send one-way notifications
notification(notification: Notification): Promise<void> notification(notification: Notification): Promise<void>
} }
``` ```
</Tab>
<Tab title="Python">
```python
# Python implementation coming soon
```
</Tab>
</Tabs>
Key classes include: Key classes include:
@ -169,21 +178,23 @@ Errors are propagated through:
Here's a basic example of implementing an MCP server: Here's a basic example of implementing an MCP server:
```typescript <Tabs>
import { Server } from "@modelcontextprotocol/sdk/server/index.js"; <Tab title="TypeScript">
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; ```typescript
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({ const server = new Server({
name: "example-server", name: "example-server",
version: "1.0.0" version: "1.0.0"
}, { }, {
capabilities: { capabilities: {
resources: {} resources: {}
} }
}); });
// Handle requests // Handle requests
server.setRequestHandler(ListResourcesRequestSchema, async () => { server.setRequestHandler(ListResourcesRequestSchema, async () => {
return { return {
resources: [ resources: [
{ {
@ -192,12 +203,19 @@ server.setRequestHandler(ListResourcesRequestSchema, async () => {
} }
] ]
}; };
}); });
// Connect transport // Connect transport
const transport = new StdioServerTransport(); const transport = new StdioServerTransport();
await server.connect(transport); await server.connect(transport);
``` ```
</Tab>
<Tab title="Python">
```python
# Python implementation coming soon
```
</Tab>
</Tabs>
## Best practices ## Best practices