Skip to content

Commit fe82da0

Browse files
committed
Some clean ups
1 parent 04edfb8 commit fe82da0

File tree

16 files changed

+18
-13
lines changed

16 files changed

+18
-13
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
FROM clojure:temurin-21-tools-deps
22

3-
WORKDIR /app/example-server
3+
WORKDIR /app/example-server-stdio
44

55
EXPOSE 7925

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# MCP Toolkit
22

3+
[![Clojars Project](https://img.shields.io/clojars/v/fi.metosin/mcp-toolkit.svg)](https://clojars.org/fi.metosin/mcp-toolkit)
4+
[![Slack](https://img.shields.io/badge/slack-mcp-toolkit-orange.svg?logo=slack)](https://clojurians.slack.com/app_redirect?channel=mcp-toolkit)
5+
[![cljdoc badge](https://cljdoc.org/badge/fi.metosin/mcp-toolkit)](https://cljdoc.org/d/fi.metosin/mcp-toolkit)
6+
37
This library is a very unofficial MCP SDK in Clojure.
48

59
It handles the communication between MCP clients and MCP servers, and attempts to provide
@@ -35,19 +39,20 @@ Tested on Claude Desktop and Claude Code, no problems found for the features imp
3539
- [x] Logging
3640
- [ ] Pagination
3741
- Example projects
38-
- [x] MCP client in CLJC
39-
- [x] MCP server in CLJC
40-
- [x] Stdio transport
41-
- [x] HTTP with SSE
42-
- [ ] Streamable HTTP transport (PR welcome)
42+
- [x] [MCP server in CLJC](example-server-stdio), uses STDIO transport
43+
- [x] [MCP client in CLJC](example-client-stdio), connects to the server above using STDIO transport
44+
- [x] [MCP server in CLJ](example-server-sse), uses HTTP with SSE transport
45+
- [ ] [MCP server in CLJ], uses Streamable HTTP transport (PR welcome)
4346

4447
## Usage
4548

46-
See the `README.md` in the `example-server/` project to learn:
49+
See the `README.md` in the `example-server-stdio/` project to learn:
4750
- how to use this library to make your own MCP server in Clojure, and
4851
- how to develop its components (prompts, resources and tools) via the REPL
4952
while the server is running.
5053

54+
Additionally, see the documentation on CLJDocs or in the `doc/` directory.
55+
5156
## Testing
5257

5358
```shell

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ services:
33
build: .
44
volumes:
55
- .:/app
6-
working_dir: /app/example-server
6+
working_dir: /app/example-server-stdio
77
ports:
88
- "7925:7925"
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

example-client/src/example/my_client.cljc renamed to example-client-stdio/src/example/my_client.cljc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
(defn -main [& args]
6262
(let [;; Start a server process
6363
^Process server-process (-> (ProcessBuilder. ["clojure" "-X:mcp-server"])
64-
(.directory (File. "../example-server"))
64+
(.directory (File. "../example-server-stdio"))
6565
(.start))
6666
;; A writer to write on the server's stdin
6767
writer (-> (.getOutputStream server-process)
@@ -96,7 +96,7 @@
9696
(defn main [& args]
9797
(let [;; Start a server process
9898
server-process (spawn "clojure" #js ["-X:mcp-server"]
99-
#js {:cwd (.resolve path ".." "example-server")
99+
#js {:cwd (.resolve path ".." "example-server-stdio")
100100
:stdio #js ["pipe" ; writable stdin
101101
"pipe" ; writable stdout
102102
"inherit" ; stderr

example-server-sse/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,4 @@ Let us know if it changes.
5959
This project is distributed under the [Eclipse Public License v2.0](../LICENSE.txt).
6060

6161
Copyright © 2025 [Casey Link](https://casey.link)
62-
Copyright © 2025 [Metosin](https://metosin.fi)
62+
Copyright © 2025 [Metosin](https://metosin.fi) and contributors.

0 commit comments

Comments
 (0)