* feat(auth): add cimd support for SEP-991 add cimd support for url-based client ids Signed-off-by: tanish111 <tanishdesai37@gmail.com> * test(auth): add unit tests for is_https_url helper Add test coverage for is_https_url helper to validate HTTPS scheme, non-root paths, and reject http, javascript, data schemes, and invalid inputs per SEP-991 requirements. Signed-off-by: tanish111 <tanishdesai37@gmail.com> * feat(example): add CIMD OAuth server for SEP-991 testing Implements a new server example (servers_cimd_auth_streamhttp) that demonstrates CIMD (Client ID Metadata Document) support for URL-based client IDs. The server validates client_id URLs, fetches and validates client metadata documents, and provides OAuth 2.0 authorization endpoints with MCP integration for end-to-end testing. Signed-off-by: tanish111 <tanishdesai37@gmail.com> * fix(oauth): add CORS headers to token endpoint Add CORS headers to token endpoint to allow cross-origin requests from browsers during OAuth authorization code exchange flow. Signed-off-by: tanish111 <tanishdesai37@gmail.com> * refactor: improve is_https_url function and consolidate tests - Improve is_https_url function formatting and readability - Merge all test cases into single test_is_https_url_scenarios function - Add missing test case for "https://" URL Signed-off-by: tanish111 <tanishdesai37@gmail.com> * refactor: use map_err instead of match for error handling in auth.rs Replace the verbose match statement with map_err for more idiomatic Signed-off-by: tanish111 <tanishdesai37@gmail.com> * feat: add client-metadata.json Add client metadata file for SEP-991 CIMD authentication support Signed-off-by: tanish111 <tanishdesai37@gmail.com> --------- Signed-off-by: tanish111 <tanishdesai37@gmail.com> |
||
|---|---|---|
| .. | ||
| clients | ||
| rig-integration | ||
| servers | ||
| simple-chat-client | ||
| transport | ||
| wasi | ||
| README.md | ||
Quick Start With Claude Desktop
-
Build the Server (Counter Example)
cargo build --release --example servers_counter_stdioThis builds a standard input/output MCP server binary.
-
Add or update this section in your
PATH-TO/claude_desktop_config.jsonWindows
{ "mcpServers": { "counter": { "command": "PATH-TO/rust-sdk/target/release/examples/servers_counter_stdio.exe", "args": [] } } }MacOS/Linux
{ "mcpServers": { "counter": { "command": "PATH-TO/rust-sdk/target/release/examples/servers_counter_stdio", "args": [] } } } -
Ensure that the MCP UI elements appear in Claude Desktop The MCP UI elements will only show up in Claude for Desktop if at least one server is properly configured. It may require to restart Claude for Desktop.
-
Once Claude Desktop is running, try chatting:
counter.say_helloOr test other tools like:
counter.increment counter.get_value counter.sum {"a": 3, "b": 4}
Client Examples
Server Examples
Transport Examples
Integration
- Rig A stream chatbot with rig
- Simple Chat Client A simple chat client implementation using the Model Context Protocol (MCP) SDK.
WASI
- WASI-P2 runtime How it works with wasip2
Use Mcp Inspector
npx @modelcontextprotocol/inspector