Releases: modelcontextprotocol/typescript-sdk
Releases · modelcontextprotocol/typescript-sdk
1.0.1
What's Changed
- Fix npx and other processes that launch subprocesses by @anaisbetts in #68
Full Changelog: 1.0.0...1.0.1
1.0.0
We're excited to announce the first stable release of the Model Context Protocol (MCP) TypeScript SDK! This release provides a complete implementation of the MCP specification, enabling seamless integration between LLM applications and context providers.
Features
Core Protocol Implementation
- Full implementation of MCP protocol v2024-11-05
- Robust client and server capabilities with promise-based async support
- Type-safe request/response handling using Zod schemas
- Support for all core MCP primitives:
- Prompts and prompt templates
- Resources and resource templates
- Tools with JSON Schema validation
- Progress tracking and notifications
- Logging with severity levels
Transport Layer Support
- Standard input/output (stdio) transport
- Server-Sent Events (SSE) transport
Client Features
- Simple, intuitive client API
- Automatic protocol negotiation
- Request timeout handling
- Progress tracking
- Error handling with typed exceptions
Server Features
- Flexible request handler registration
- Built-in capability negotiation
- Request context management
- Support for experimental capabilities
- Automatic request/response routing
Installation
npm install --save @modelcontextprotocol/sdk
Basic Usage
Creating a Client
import { Client } from "@modelcontextprotocol/sdk/client";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio";
const client = new Client(
{ name: "example-client", version: "1.0.0" },
{ capabilities: { sampling: {} } }
);
const transport = new StdioClientTransport({
command: "path/to/server",
});
await client.connect(transport);
const resources = await client.listResources();
Creating a Server
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
const server = new Server(
{ name: "example-server", version: "1.0.0" },
{ capabilities: { resources: {} } }
);
server.setRequestHandler(ListResourcesRequestSchema, async () => ({
resources: [
{ uri: "file:///example.txt", name: "Example Resource" }
]
}));
const transport = new StdioServerTransport();
await server.connect(transport);
Requirements
- Node.js 18.0.0 or later
- TypeScript 5.0 or later (for development)
Breaking Changes
This is the initial stable release, establishing the baseline API for future versions.
License
MIT License
For more information:
0.7.0
What's Changed
- Add way to get child process stderr pipe by @jspahrsummers in #65
Full Changelog: 0.6.1...0.7.0
0.6.1
What's Changed
- Bump cross-spawn from 7.0.3 to 7.0.5 in the npm_and_yarn group across 1 directory by @dependabot in #59
- Add code of conduct by @dsp-ant in #61
- Use detached: true on Windows by @anaisbetts in #62
- Add CONTRIBUTING.md by @jspahrsummers in #64
- Fix package homepage by @jspahrsummers in #63
New Contributors
Full Changelog: 0.6.0...0.6.1
0.6.0
What's Changed
- Add message to
abortAfterTimeout
, add missing requestoptions
by @jspahrsummers in #58 - Bump @eslint/plugin-kit from 0.2.1 to 0.2.3 in the npm_and_yarn group across 1 directory by @dependabot in #57
- Replace
abortAfterTimeout
withRequestOptions.timeout
by @jspahrsummers in #60
New Contributors
- @dependabot made their first contribution in #57
Full Changelog: 0.5.0...0.6.0
0.5.0
What's Changed
- Update README title by @jspahrsummers in #49
- Restrict publishing to
release
environment by @jspahrsummers in #53 - Test capabilities, use explicit specifiers for now by @jspahrsummers in #52
- Improve and test version negotiation by @jspahrsummers in #51
CallToolResult.isError
should not be required by @jspahrsummers in #50- Don't open a terminal window on Windows by @anaisbetts in #55
- Implement cancellation notifications and handling by @jspahrsummers in #54
- Make stderr behavior configurable by @jspahrsummers in #56
New Contributors
- @anaisbetts made their first contribution in #55
Full Changelog: 0.4.0...0.5.0
0.4.0
What's Changed
- Prevent new server code from returning
toolResult
by @jspahrsummers in #41 - Fix some missing type exports by @jspahrsummers in #46
- Add license information and more package metadata by @jspahrsummers in #47
- Publish releases publicly to npm by @jspahrsummers in #48
Full Changelog: 0.3.2...0.4.0
0.3.2
What's Changed
CallToolResult.isError
should be optional by @jspahrsummers in #39
Full Changelog: 0.3.1...0.3.2
0.3.1
Bump version number for package registry
0.3.0
What's Changed
- Update to spec version 2024-11-05 by @jspahrsummers in #37
- Add backwards compatibility with 2024-10-07 by @jspahrsummers in #38
Full Changelog: 0.2.0...0.3.0