Create a Stdio-transport based server implementation
Create a template project for easily creating MCP servers
State “DONE” from “TODO” [2025-04-27 Sun 18:30]
State “TODO” from [2025-04-27 Sun 18:28]
See:
mcp-clojure-server-deps-new for a deps-new based template
example-cool-mcp-server for a Github template project
WORKING Add client support to mcp-clojure-sdk
State “WORKING” from “TODO” [2025-05-24 Sat 14:38]
WORKING Add basic client support for the stdio transport, based on what python-sdk and typescript-sdk do
State “WORKING” from “TODO” [2025-05-24 Sat 14:38]
WORKING Create an integration test for the current server code using such a client, based on clojure-lsp integration tests
State “WORKING” from “TODO” [2025-05-25 Sun 11:41]
Update the README of mcp-clojure-sdk.
Refer to typescript-sdk as a reference
Write an example mcp-client-tool to run mcp-servers locally and list what they do/don’t provide
Support servers launched using npx/node
Support servers launched using uv/python
Support servers launched using java
Add support for dynamic server capability negotiation
Add support for the SSE / Streaming HTTP transport to mcp-clojure-sdk
Add support for SSE transport
Add support for Streaming HTTP transport
WORKING Implement the entire roots section of the protocol
State “WORKING” from “TODO” [2025-05-03 Sat 16:38]
WORKING Bring the spec up-to-date and track the differences
Add an integration test for end-to-end testing the server
See integration.client from lsp4clj for inspiration
Implement the HTTP-SSE Transport
Implement the SSE-transport based server
Implement the SSE-transport based client
Checks and Balances in the mcp-cljc-sdk code
Make sure that handle-* functions are implement proper checks
Read through the python decorator code to double-check if we are doing the right thing here.
Implement best practices for prompts
Implement best practices for tools
Implement best practices for resources
Ensure that error handling is correctly done for transports
Implement best practices for transports
Implement the entire sampling section of the protocol
Create a CLI tool for how tools, prompts, resources should be defined
Easily create new projects, in deps-new style
Organize them properly, making it possible to build servers fast.
Make it language-agnostic, allowing the tool to create Clojure, Python, TS projects.
Explore babashka as the runner in Claude Desktop / Inspector
The current code is wildly incompatible with bb, so this is a long-shot. But bb compatibility will mean speed and ease of use.