An implementation of the Model-Channel Protocol (MCP) in Clojure, designed to expose Clojure REPL functionality over an SSE transport.
mcp-clj is a Clojure implementation of the Model-Channel Protocol (MCP) defined by Anthropic. It provides both client and server components for MCP communication, with a specific focus on exposing Clojure REPL functionality. The project aims to maintain compatibility with Anthropic's MCP specification while providing a simple and reliable implementation.
Add mcp-clj as a dependency to your project.
- Add the mcp-project as a dependency:
:deps {org.hugoduncan/mcp-clj
{:git/url "https://github.com/hugoduncan/mcp-clj"
:git/sha "replace with latest git sha"
:deps/root "projects/server"}}
- In the project, start the server:
(require 'mcp-clj.mcp-server.core)
(def server (mcp-clj.mcp-server.core/create-server {:port 3001}))
This will start the server on port 3001. You can then connect to the server using an MCP client.
To configure Claude Desktop to use mcp-clj, you need to use mcp-proxy.
In claude_desktop_config.json
, add:
"mcp-proxy": {
"command": "mcp-proxy",
"args": [
"http://localhost:3001/sse"
],
"env": {
"API_ACCESS_TOKEN": "ABC"
}
}
Contributions to mcp-clj are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Make your changes and ensure all tests pass.
- Submit a pull request with a detailed description of your changes.
mcp-clj is licensed under the MIT License. See the LICENSE file for more details.