aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/docker.yml8
-rw-r--r--apps/mcp/README.md24
-rw-r--r--docker/Dockerfile15
3 files changed, 44 insertions, 3 deletions
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index f97b453a..50bd3262 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -25,10 +25,14 @@ jobs:
target: cli
tags_latest: ghcr.io/hoarder-app/hoarder-cli:latest,ghcr.io/mohamedbassem/hoarder-cli:latest,ghcr.io/karakeep-app/karakeep-cli:latest
tags_release: ghcr.io/hoarder-app/hoarder-cli:${{ github.event.release.name }},ghcr.io/mohamedbassem/hoarder-cli:${{ github.event.release.name }},ghcr.io/karakeep-app/karakeep-cli:${{ github.event.release.name }},ghcr.io/hoarder-app/hoarder-cli:release,ghcr.io/mohamedbassem/hoarder-cli:release,ghcr.io/karakeep-app/karakeep-cli:release
+ - name: karakeep-mcp
+ target: mcp
+ tags_latest: ghcr.io/karakeep-app/karakeep-mcp:latest
+ tags_release: ghcr.io/karakeep-app/karakeep-mcp:${{ github.event.release.name }},ghcr.io/karakeep-app/karakeep-mcp:release
- name: karakeep-aio
target: aio
- tags_latest: ghcr.io/hoarder-app/hoarder:latest,ghcr.io/mohamedbassem/hoarder:latest,ghcr.io/karakeep-app/karakeep:latest
- tags_release: ghcr.io/hoarder-app/hoarder:${{ github.event.release.name }},ghcr.io/mohamedbassem/hoarder:${{ github.event.release.name }},ghcr.io/karakeep-app/karakeep:${{ github.event.release.name }},ghcr.io/hoarder-app/hoarder:release,ghcr.io/mohamedbassem/hoarder:release,ghcr.io/karakeep-app/karakeep:release
+ tags_latest: ghcr.io/hoarder-app/hoarder:latest,ghcr.io/karakeep-app/karakeep:latest
+ tags_release: ghcr.io/hoarder-app/hoarder:${{ github.event.release.name }},ghcr.io/karakeep-app/karakeep:${{ github.event.release.name }},ghcr.io/hoarder-app/hoarder:release,ghcr.io/karakeep-app/karakeep:release
runs-on: ubuntu-latest
permissions:
packages: write
diff --git a/apps/mcp/README.md b/apps/mcp/README.md
index d59bb894..150aae78 100644
--- a/apps/mcp/README.md
+++ b/apps/mcp/README.md
@@ -14,8 +14,9 @@ Currently, the MCP server only exposes tools (no resources).
## Usage with Claude Desktop
+From NPM:
-```
+```json
{
"mcpServers": {
"karakeep": {
@@ -32,3 +33,24 @@ Currently, the MCP server only exposes tools (no resources).
}
```
+From Docker:
+
+```json
+{
+ "mcpServers": {
+ "karakeep": {
+ "command": "docker",
+ "args": [
+ "run",
+ "-p",
+ "3000:3000",
+ "-e",
+ "KARAKEEP_API_ADDR=https://<YOUR_SERVER_ADDR>",
+ "-e",
+ "KARAKEEP_API_KEY=<YOUR_TOKEN>",
+ "ghcr.io/karakeep-app/karakeep-mcp:latest"
+ ]
+ }
+ }
+}
+```
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 91d84b36..40e09c13 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -31,6 +31,9 @@ RUN pnpm deploy --node-linker=isolated --filter @karakeep/workers --prod /prod/w
# Build the cli
RUN (cd apps/cli && pnpm build)
+# Build the mcp server
+RUN (cd apps/mcp && pnpm build)
+
################# The All-in-one builder ##############
FROM node:22-alpine AS aio_builder
@@ -145,3 +148,15 @@ ARG SERVER_VERSION=nightly
ENV SERVER_VERSION=${SERVER_VERSION}
ENTRYPOINT ["node", "index.mjs"]
+
+################# MCP server ##############
+
+FROM node:22-alpine AS mcp
+LABEL org.opencontainers.image.source="https://github.com/karakeep-app/karakeep"
+WORKDIR /app
+
+COPY --from=base /app/apps/mcp/dist/index.js apps/mcp/index.js
+
+WORKDIR /app/apps/mcp
+
+ENTRYPOINT ["node", "index.js"]