feat: update fleet to tested MCPs + add 10 new MCPs with Dockerfiles + Woodpecker CI
This commit is contained in:
parent
1d06ba2209
commit
2078644d69
34 changed files with 527 additions and 357 deletions
126
.woodpecker.yml
126
.woodpecker.yml
|
|
@ -2,75 +2,125 @@ when:
|
|||
- branch: main
|
||||
event: push
|
||||
|
||||
steps:
|
||||
build-forgejo:
|
||||
variables:
|
||||
- &build-step
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
FORGEJO_REGISTRY_TOKEN:
|
||||
from_secret: forgejo_registry_token
|
||||
|
||||
steps:
|
||||
build-forgejo:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-forgejo:latest -f forgejo/Dockerfile forgejo/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-forgejo:latest
|
||||
|
||||
build-woodpecker:
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
FORGEJO_REGISTRY_TOKEN:
|
||||
from_secret: forgejo_registry_token
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-woodpecker:latest -f woodpecker/Dockerfile woodpecker/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-woodpecker:latest
|
||||
|
||||
build-semaphore:
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
FORGEJO_REGISTRY_TOKEN:
|
||||
from_secret: forgejo_registry_token
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-semaphore:latest -f semaphore/Dockerfile semaphore/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-semaphore:latest
|
||||
|
||||
build-github:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker pull ghcr.io/github/github-mcp-server:latest
|
||||
- docker tag ghcr.io/github/github-mcp-server:latest forgejo.corentic.eu/corentic/mcp-fleet-github:latest
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-github:latest
|
||||
|
||||
build-postgresql:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-postgresql:latest -f postgresql/Dockerfile postgresql/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-postgresql:latest
|
||||
|
||||
build-portainer:
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
FORGEJO_REGISTRY_TOKEN:
|
||||
from_secret: forgejo_registry_token
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-portainer:latest -f portainer/Dockerfile portainer/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-portainer:latest
|
||||
|
||||
build-github:
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
FORGEJO_REGISTRY_TOKEN:
|
||||
from_secret: forgejo_registry_token
|
||||
build-nginx-proxy-manager:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-github:latest -f github/Dockerfile github/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-github:latest
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-nginx-proxy-manager:latest -f nginx-proxy-manager/Dockerfile nginx-proxy-manager/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-nginx-proxy-manager:latest
|
||||
|
||||
build-postgresql:
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
FORGEJO_REGISTRY_TOKEN:
|
||||
from_secret: forgejo_registry_token
|
||||
build-taiga:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-postgresql:latest -f postgresql/Dockerfile postgresql/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-postgresql:latest
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-taiga:latest -f taiga/Dockerfile taiga/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-taiga:latest
|
||||
|
||||
build-nextcloud:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-nextcloud:latest -f nextcloud/Dockerfile nextcloud/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-nextcloud:latest
|
||||
|
||||
build-kdrive:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-kdrive:latest -f kdrive/Dockerfile kdrive/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-kdrive:latest
|
||||
|
||||
build-kontist:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-kontist:latest -f kontist/Dockerfile kontist/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-kontist:latest
|
||||
|
||||
build-bitwarden:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-bitwarden:latest -f bitwarden/Dockerfile bitwarden/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-bitwarden:latest
|
||||
|
||||
build-networking:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-networking:latest -f networking/Dockerfile networking/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-networking:latest
|
||||
|
||||
build-filesystem:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-filesystem:latest -f filesystem/Dockerfile filesystem/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-filesystem:latest
|
||||
|
||||
build-docker:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-docker:latest -f docker/Dockerfile docker/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-docker:latest
|
||||
|
||||
build-web-search:
|
||||
<<: *build-step
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-web-search:latest -f web-search/Dockerfile web-search/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-web-search:latest
|
||||
|
|
|
|||
11
bitwarden/Dockerfile
Normal file
11
bitwarden/Dockerfile
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
FROM node:22-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends curl unzip && rm -rf /var/lib/apt/lists/*
|
||||
RUN curl -fsSL "https://github.com/bitwarden/clients/releases/download/cli-v2025.4.0/bw-linux-2025.4.0.zip" -o /tmp/bw.zip && unzip -o /tmp/bw.zip -d /usr/local/bin && rm /tmp/bw.zip && chmod +x /usr/local/bin/bw
|
||||
RUN npm install -g mcp-proxy@6.5.2 @bitwarden/mcp-server@2026.5.1
|
||||
ENV BW_API_BASE_URL=
|
||||
ENV BW_IDENTITY_URL=
|
||||
ENV BW_CLIENT_ID=
|
||||
ENV BW_CLIENT_SECRET=
|
||||
ENV BW_PASSWORD=
|
||||
EXPOSE 8112
|
||||
CMD ["mcp-proxy", "--port", "8112", "--host", "0.0.0.0", "--", "mcp-server-bitwarden"]
|
||||
37
bitwarden/README.md
Normal file
37
bitwarden/README.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# bitwarden-mcp
|
||||
|
||||
MCP server for Bitwarden/Vaultwarden vault operations.
|
||||
|
||||
Source: [`@bitwarden/mcp-server`](https://npm.im/@bitwarden/mcp-server)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `BW_API_BASE_URL` | Yes | Self-hosted Vaultwarden API URL (e.g. `https://vault.corentic.eu/api`) |
|
||||
| `BW_IDENTITY_URL` | Yes | Self-hosted Vaultwarden identity URL (e.g. `https://vault.corentic.eu/identity`) |
|
||||
| `BW_CLIENT_ID` | Yes | Bitwarden client ID (from Admin Panel → API Keys) |
|
||||
| `BW_CLIENT_SECRET` | Yes | Bitwarden client secret |
|
||||
| `BW_PASSWORD` | Yes | Vault master password |
|
||||
| `BW_SESSION` | No | Session key (optional, obtained via `bw unlock --raw`) |
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name bitwarden-mcp \
|
||||
-p 8112:8112 \
|
||||
-e BW_API_BASE_URL=https://vault.corentic.eu/api \
|
||||
-e BW_IDENTITY_URL=https://vault.corentic.eu/identity \
|
||||
-e BW_CLIENT_ID=user_xxx \
|
||||
-e BW_CLIENT_SECRET=your_secret \
|
||||
-e BW_PASSWORD=master_password \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-bitwarden:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- `list_folders`, `create_folder` — Folder management
|
||||
- `list_items`, `search_items` — Item listing/search
|
||||
- `get_item` — Get item details
|
||||
- `create_item`, `edit_item`, `delete_item` — CRUD operations
|
||||
6
docker/Dockerfile
Normal file
6
docker/Dockerfile
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
FROM node:22-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends docker.io && rm -rf /var/lib/apt/lists/*
|
||||
RUN npm install -g mcp-proxy@6.5.2 mcp-server-docker
|
||||
EXPOSE 8115
|
||||
VOLUME /var/run/docker.sock
|
||||
CMD ["mcp-proxy", "--port", "8115", "--host", "0.0.0.0", "--", "mcp-server-docker"]
|
||||
25
docker/README.md
Normal file
25
docker/README.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# docker-mcp
|
||||
|
||||
MCP server for Docker container management.
|
||||
|
||||
Source: [`mcp-server-docker`](https://npm.im/mcp-server-docker)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
None required. Mount the Docker socket:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name docker-mcp \
|
||||
-p 8115:8115 \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-docker:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- `list_containers` — List running containers
|
||||
- `inspect_container` — Container details
|
||||
- `list_images` — List Docker images
|
||||
- `exec_command` — Execute command in container
|
||||
- `container_logs` — Fetch container logs
|
||||
4
filesystem/Dockerfile
Normal file
4
filesystem/Dockerfile
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
FROM node:22-slim
|
||||
RUN npm install -g mcp-proxy@6.5.2 @modelcontextprotocol/server-filesystem
|
||||
EXPOSE 8114
|
||||
CMD ["mcp-proxy", "--port", "8114", "--host", "0.0.0.0", "--", "mcp-server-filesystem"]
|
||||
25
filesystem/README.md
Normal file
25
filesystem/README.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# filesystem-mcp
|
||||
|
||||
MCP server for filesystem operations (read, write, search files).
|
||||
|
||||
Source: [`@modelcontextprotocol/server-filesystem`](https://npm.im/@modelcontextprotocol/server-filesystem)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
None required. Mount the directory you want to expose:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name filesystem-mcp \
|
||||
-p 8114:8114 \
|
||||
-v /path/to/expose:/workspace \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-filesystem:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- `read_file` — Read file contents
|
||||
- `write_file` — Write/create files
|
||||
- `search_files` — Search files by pattern
|
||||
- `list_directory` — List directory contents
|
||||
- `get_file_info` — File metadata
|
||||
|
|
@ -1,7 +1,4 @@
|
|||
FROM node:22-slim
|
||||
|
||||
RUN npm install -g mcp-proxy@6.5.2 @openmanbo/forgejo-mcp@0.1.0
|
||||
|
||||
EXPOSE 8101
|
||||
|
||||
CMD ["mcp-proxy", "--port", "8101", "--host", "0.0.0.0", "--", "forgejo-mcp"]
|
||||
CMD ["mcp-proxy", "--port", "8101", "--host", "0.0.0.0", "--", "forgejo-mcp"]
|
||||
|
|
@ -10,7 +10,6 @@ Source: [`@openmanbo/forgejo-mcp`](https://npm.im/@openmanbo/forgejo-mcp)
|
|||
|----------|----------|-------------|
|
||||
| `FORGEJO_URL` | Yes | Forgejo instance URL (e.g. `https://forgejo.corentic.eu`) |
|
||||
| `FORGEJO_TOKEN` | Yes | Forgejo API token or personal access token |
|
||||
| `FORGEJO_USERNAME` | No | Username for certain operations |
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
@ -20,48 +19,12 @@ docker run -d \
|
|||
-p 8101:8101 \
|
||||
-e FORGEJO_URL=https://forgejo.corentic.eu \
|
||||
-e FORGEJO_TOKEN=your_token \
|
||||
-e FORGEJO_USERNAME=tobi \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-forgejo:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
### Issues
|
||||
- **`search_issues`** — Search issues/PRs across all repos. Params: `q`, `type` (issues/pulls), `state` (open/closed), `labels`, `owner`, `assigned`, `created`, `mentioned`, `since`, `before`, `page`, `limit`
|
||||
- **`list_issues`** — List issues in a repo. Params: `owner`, `repo`, `state`, `type`, `labels`, `page`, `limit`
|
||||
- **`get_issue`** — Get issue/PR details. Params: `owner`, `repo`, `index`
|
||||
- **`create_issue`** — Create issue. Params: `owner`, `repo`, `title`, `body`, `assignees`, `labels`, `milestone`
|
||||
- **`edit_issue`** — Edit issue. Params: `owner`, `repo`, `index`, `title`, `body`, `state`, `assignees`, `milestone`
|
||||
- **`list_issue_comments`** — List comments. Params: `owner`, `repo`, `index`, `page`, `limit`
|
||||
- **`create_comment`** — Add comment. Params: `owner`, `repo`, `index`, `body`
|
||||
|
||||
### Repositories
|
||||
- **`search_repos`** — Search repos. Params: `q`, `topic`, `include_desc`, `owner`, `is_private`, `archived`, `page`, `limit`
|
||||
- **`get_repo`** — Get repo details. Params: `owner`, `repo`
|
||||
|
||||
### Pull Requests
|
||||
- **`list_pull_requests`** — List PRs. Params: `owner`, `repo`, `state`, `sort`, `labels`, `milestone`, `page`, `limit`
|
||||
- **`get_pull_request`** — Get PR details. Params: `owner`, `repo`, `index`
|
||||
- **`create_pull_request`** — Create PR. Params: `owner`, `repo`, `title`, `body`, `head`, `base`, `assignees`, `labels`, `milestone`
|
||||
- **`edit_pull_request`** — Update PR. Params: `owner`, `repo`, `index`, `title`, `body`, `state`, `base`, `assignees`, `labels`, `milestone`
|
||||
- **`merge_pull_request`** — Merge PR. Params: `owner`, `repo`, `index`, `Do` (merge/rebase/squash), `delete_branch_after_merge`, `force_merge`, `merge_when_checks_succeed`
|
||||
- **`get_pull_request_diff`** — Get PR diff. Params: `owner`, `repo`, `index`
|
||||
- **`get_pull_request_files`** — Get changed files. Params: `owner`, `repo`, `index`, `skip`, `limit`
|
||||
- **`update_pull_request_branch`** — Update PR branch with base. Params: `owner`, `repo`, `index`, `style` (rebase/merge)
|
||||
|
||||
### Pull Request Reviews
|
||||
- **`list_pull_request_reviews`** — List reviews. Params: `owner`, `repo`, `index`, `page`, `limit`
|
||||
- **`get_pull_request_review`** — Get review details. Params: `owner`, `repo`, `index`, `review_id`
|
||||
- **`create_pull_request_review`** — Create/submit review. Params: `owner`, `repo`, `index`, `event` (APPROVED/REQUEST_CHANGES/COMMENT/PENDING), `body`, `commit_id`, `comments[]` (line-level)
|
||||
- **`submit_pull_request_review`** — Submit pending review. Params: `owner`, `repo`, `index`, `review_id`, `event`, `body`
|
||||
- **`delete_pull_request_review`** — Delete review. Params: `owner`, `repo`, `index`, `review_id`
|
||||
- **`dismiss_pull_request_review`** — Dismiss review. Params: `owner`, `repo`, `index`, `review_id`, `message`
|
||||
- **`get_pull_request_review_comments`** — List review comments. Params: `owner`, `repo`, `index`, `review_id`
|
||||
|
||||
### Users & Notifications
|
||||
- **`get_user`** — Get authenticated user profile
|
||||
- **`get_user_info`** — Get user profile by login. Params: `username`
|
||||
- **`get_git_token`** — Get git credentials for cloning
|
||||
- **`list_notifications`** — List notifications. Params: `all`, `since`, `before`, `page`, `limit`
|
||||
- **`mark_notification_read`** — Mark notification read. Params: `id`
|
||||
- **`mark_all_notifications_read`** — Mark all read. Params: `last_read_at`
|
||||
- Issues: search, list, get, create, edit, comments
|
||||
- Repositories: search, get
|
||||
- Pull requests: list, get, create, edit, merge, diff, files, reviews
|
||||
- Users & notifications: profile, notifications
|
||||
|
|
@ -1,7 +1,3 @@
|
|||
FROM node:22-slim
|
||||
|
||||
RUN npm install -g mcp-proxy@6.5.2 @modelcontextprotocol/server-github@2025.4.8
|
||||
|
||||
EXPOSE 8104
|
||||
|
||||
CMD ["mcp-proxy", "--port", "8104", "--host", "0.0.0.0", "--", "mcp-server-github"]
|
||||
FROM ghcr.io/github/github-mcp-server:latest
|
||||
ENV GITHUB_PERSONAL_ACCESS_TOKEN=
|
||||
EXPOSE 8104
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
# github-mcp
|
||||
|
||||
MCP server for the GitHub API.
|
||||
MCP server for the GitHub API. Uses the official Docker image from GitHub.
|
||||
|
||||
Source: [`@modelcontextprotocol/server-github`](https://www.npmjs.com/package/@modelcontextprotocol/server-github) (deprecated)
|
||||
Source: [`ghcr.io/github/github-mcp-server`](https://github.com/github/github-mcp-server)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
|
|
@ -20,55 +20,8 @@ docker run -d \
|
|||
forgejo.corentic.eu/corentic/mcp-fleet-github:latest
|
||||
```
|
||||
|
||||
This MCP uses stdio transport (no mcp-proxy). Clients connect directly via stdio.
|
||||
|
||||
## Tools
|
||||
|
||||
### Repositories
|
||||
- **`create_repository`** — Create a GitHub repository. Params: `name`, `description`, `private`, `autoInit`
|
||||
- **`search_repositories`** — Search for GitHub repositories. Params: `query`, `search_options` (sort, order, per_page, page)
|
||||
- **`fork_repository`** — Fork a repository. Params: `owner`, `repo`, `organization`
|
||||
- **`get_repository`** — Get repository details. Params: `owner`, `repo`
|
||||
- **`list_repositories`** — List repositories for user/org. Params: `owner`, `type`, `sort`, `direction`, `per_page`, `page`
|
||||
|
||||
### Pull Requests
|
||||
- **`get_pull_request`** — Get PR details. Params: `owner`, `repo`, `pull_number`
|
||||
- **`list_pull_requests`** — List PRs. Params: `owner`, `repo`, `state`, `head`, `base`, `sort`, `direction`, `per_page`, `page`
|
||||
- **`create_pull_request`** — Create PR. Params: `owner`, `repo`, `title`, `head`, `base`, `body`, `draft`, `maintainer_can_modify`
|
||||
- **`merge_pull_request`** — Merge PR. Params: `owner`, `repo`, `pull_number`, `commit_title`, `commit_message`, `merge_method` (merge/squash/rebase)
|
||||
- **`get_pull_request_files`** — List changed files in a PR. Params: `owner`, `repo`, `pull_number`
|
||||
- **`get_pull_request_status`** — Get combined status of all status checks for a PR. Params: `owner`, `repo`, `pull_number`
|
||||
- **`update_pull_request_branch`** — Update PR branch with latest base branch. Params: `owner`, `repo`, `pull_number`, `expected_head_sha`
|
||||
- **`get_pull_request_comments`** — List review comments on a PR. Params: `owner`, `repo`, `pull_number`
|
||||
- **`create_pull_request_review`** — Create a review on a PR. Params: `owner`, `repo`, `pull_number`, `body`, `event` (APPROVE/REQUEST_CHANGES/COMMENT), `comments[]`
|
||||
- **`list_pull_request_reviews`** — List reviews on a PR. Params: `owner`, `repo`, `pull_number`
|
||||
|
||||
### Issues
|
||||
- **`create_issue`** — Create issue. Params: `owner`, `repo`, `title`, `body`, `assignees`, `labels`, `milestone`
|
||||
- **`list_issues`** — List issues. Params: `owner`, `repo`, `state`, `labels`, `sort`, `direction`, `since`, `per_page`, `page`
|
||||
- **`add_issue_comment`** — Add comment. Params: `owner`, `repo`, `issue_number`, `body`
|
||||
- **`search_issues`** — Search issues across GitHub. Params: `q`, `sort`, `order`, `per_page`, `page`
|
||||
- **`get_issue`** — Get issue details. Params: `owner`, `repo`, `issue_number`
|
||||
- **`update_issue`** — Update issue. Params: `owner`, `repo`, `issue_number`, `title`, `body`, `state`, `labels`, `assignees`, `milestone`
|
||||
|
||||
### Actions
|
||||
- **`list_workflows`** — List workflows in a repo. Params: `owner`, `repo`, `per_page`, `page`
|
||||
- **`list_workflow_runs`** — List workflow runs. Params: `owner`, `repo`, `workflow_id`, `branch`, `status`, `per_page`, `page`
|
||||
- **`get_workflow_run`** — Get workflow run details. Params: `owner`, `repo`, `run_id`
|
||||
- **`get_workflow_run_usage`** — Get workflow run usage stats. Params: `owner`, `repo`, `run_id`
|
||||
|
||||
### Contents
|
||||
- **`get_content`** — Get file contents. Params: `owner`, `repo`, `path`, `branch`
|
||||
- **`create_or_update_file`** — Create or update file. Params: `owner`, `repo`, `path`, `content`, `message`, `branch`, `sha`
|
||||
|
||||
### Commits & Branches
|
||||
- **`list_commits`** — List commits. Params: `owner`, `repo`, `sha` (branch), `path`, `author`, `since`, `until`, `per_page`, `page`
|
||||
- **`get_commit`** — Get commit details. Params: `owner`, `repo`, `ref`
|
||||
- **`list_branches`** — List branches. Params: `owner`, `repo`, `protected`, `per_page`, `page`
|
||||
- **`create_branch`** — Create branch reference. Params: `owner`, `repo`, `branch_name`, `sha`
|
||||
|
||||
### Users
|
||||
- **`get_me`** — Get authenticated user profile
|
||||
- **`search_users`** — Search users. Params: `q`
|
||||
|
||||
### Releases
|
||||
- **`list_releases`** — List releases. Params: `owner`, `repo`, `per_page`, `page`
|
||||
- **`get_release`** — Get release by tag. Params: `owner`, `repo`, `tag`
|
||||
Repositories (CRUD, search, fork), pull requests (full lifecycle with reviews), issues (CRUD, search, comments), Actions (workflows, runs), file contents (read/write), commits, branches, users, releases.
|
||||
4
kdrive/Dockerfile
Normal file
4
kdrive/Dockerfile
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
FROM node:22-slim
|
||||
RUN npm install -g mcp-proxy@6.5.2 @infomaniak/mcp-server-kdrive@1.1.1
|
||||
EXPOSE 8108
|
||||
CMD ["mcp-proxy", "--port", "8108", "--host", "0.0.0.0", "--", "mcp-server-kdrive"]
|
||||
27
kdrive/README.md
Normal file
27
kdrive/README.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# kdrive-mcp
|
||||
|
||||
MCP server for Infomaniak kDrive.
|
||||
|
||||
Source: [`@infomaniak/mcp-server-kdrive`](https://npm.im/@infomaniak/mcp-server-kdrive)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `KDRIVE_TOKEN` | Yes | kDrive API token from Infomaniak Manager |
|
||||
| `KDRIVE_ID` | Yes | kDrive numeric ID |
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name kdrive-mcp \
|
||||
-p 8108:8108 \
|
||||
-e KDRIVE_TOKEN=your_token \
|
||||
-e KDRIVE_ID=1911443 \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-kdrive:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
List drives, list files/folders, read files, search, upload/download.
|
||||
11
kontist/Dockerfile
Normal file
11
kontist/Dockerfile
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
FROM node:22-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/*
|
||||
RUN git clone https://github.com/tobiasendres-dev/kontist-mcp.git /app/kontist-mcp
|
||||
WORKDIR /app/kontist-mcp
|
||||
RUN npm install
|
||||
RUN npm install -g mcp-proxy@6.5.2
|
||||
ENV KONTIST_CLIENT_ID=
|
||||
ENV KONTIST_CLIENT_SECRET=
|
||||
VOLUME /root/.config/kontist
|
||||
EXPOSE 8111
|
||||
CMD ["mcp-proxy", "--port", "8111", "--host", "0.0.0.0", "--", "node", "server.mjs"]
|
||||
47
kontist/README.md
Normal file
47
kontist/README.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# kontist-mcp
|
||||
|
||||
MCP server for Kontist banking API (balance, transactions, transfers).
|
||||
|
||||
Source: [`github.com/tobiasendres-dev/kontist-mcp`](https://github.com/tobiasendres-dev/kontist-mcp)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `KONTIST_CLIENT_ID` | Yes | Client ID from kontist.dev |
|
||||
| `KONTIST_CLIENT_SECRET` | Yes | Client secret from kontist.dev |
|
||||
|
||||
## Usage
|
||||
|
||||
This MCP requires OAuth tokens. Run the OAuth flow once on the host:
|
||||
|
||||
```bash
|
||||
# Clone, install, run auth
|
||||
git clone https://github.com/tobiasendres-dev/kontist-mcp.git
|
||||
cd kontist-mcp
|
||||
npm install
|
||||
KONTIST_CLIENT_ID=xxx KONTIST_CLIENT_SECRET=xxx npm run auth
|
||||
```
|
||||
|
||||
Then mount the tokens file into the container:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name kontist-mcp \
|
||||
-p 8111:8111 \
|
||||
-v ~/.config/kontist:/root/.config/kontist \
|
||||
-e KONTIST_CLIENT_ID=your_client_id \
|
||||
-e KONTIST_CLIENT_SECRET=your_client_secret \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-kontist:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- `get_balance` — Current balance + available balance
|
||||
- `get_account` — Account details (IBAN, holder)
|
||||
- `list_transactions` — Recent transactions
|
||||
- `create_transfer` — Create a transfer (requires TAN)
|
||||
- `confirm_transfer` — Confirm with TAN
|
||||
- `list_cards` — List all cards
|
||||
|
||||
Tokens expire after ~1 hour. Re-run `npm run auth` to refresh.
|
||||
4
networking/Dockerfile
Normal file
4
networking/Dockerfile
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
FROM node:22-slim
|
||||
RUN npm install -g mcp-proxy@6.5.2 @leviai/netrecon-mcp@1.0.0
|
||||
EXPOSE 8113
|
||||
CMD ["mcp-proxy", "--port", "8113", "--host", "0.0.0.0", "--", "netrecon-mcp"]
|
||||
27
networking/README.md
Normal file
27
networking/README.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# netrecon-mcp
|
||||
|
||||
MCP server for networking diagnostics (DNS, WHOIS, ping, traceroute).
|
||||
|
||||
Source: [`@leviai/netrecon-mcp`](https://npm.im/@leviai/netrecon-mcp)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
None required.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name networking-mcp \
|
||||
-p 8113:8113 \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-networking:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- `dns_lookup` — DNS resolution
|
||||
- `ping` — ICMP ping
|
||||
- `traceroute` — Route tracing
|
||||
- `whois` — WHOIS lookup
|
||||
- `http_check` — HTTP status check
|
||||
- `port_check` — TCP port connectivity
|
||||
5
nextcloud/Dockerfile
Normal file
5
nextcloud/Dockerfile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
FROM node:22-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends python3 python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
|
||||
RUN pip3 install --no-cache-dir --break-system-packages "nc-mcp-server>=0.7.0" && npm install -g mcp-proxy@6.5.2
|
||||
EXPOSE 8107
|
||||
CMD ["mcp-proxy", "--port", "8107", "--host", "0.0.0.0", "--", "nc-mcp-server"]
|
||||
29
nextcloud/README.md
Normal file
29
nextcloud/README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# nextcloud-mcp
|
||||
|
||||
MCP server for Nextcloud (files, shares, users, apps).
|
||||
|
||||
Source: [`nc-mcp-server`](https://pypi.org/project/nc-mcp-server/)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `NEXTCLOUD_URL` | Yes | Nextcloud instance URL (e.g. `https://cloud.corentic.eu`) |
|
||||
| `NEXTCLOUD_USER` | Yes | Nextcloud admin username |
|
||||
| `NEXTCLOUD_PASSWORD` | Yes | Nextcloud admin password |
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name nextcloud-mcp \
|
||||
-p 8107:8107 \
|
||||
-e NEXTCLOUD_URL=https://cloud.corentic.eu \
|
||||
-e NEXTCLOUD_USER=admin \
|
||||
-e NEXTCLOUD_PASSWORD=your_password \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-nextcloud:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
Files & folders (list, read, write, search), shares management, users & groups, apps (enable/disable), system info (version, storage, usage).
|
||||
5
nginx-proxy-manager/Dockerfile
Normal file
5
nginx-proxy-manager/Dockerfile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
FROM node:22-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends python3 python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
|
||||
RUN pip3 install --no-cache-dir --break-system-packages "nginx-proxy-manager-mcp>=2.14.0" && npm install -g mcp-proxy@6.5.2
|
||||
EXPOSE 8105
|
||||
CMD ["mcp-proxy", "--port", "8105", "--host", "0.0.0.0", "--", "nginx-proxy-manager-mcp"]
|
||||
29
nginx-proxy-manager/README.md
Normal file
29
nginx-proxy-manager/README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# nginx-proxy-manager-mcp
|
||||
|
||||
MCP server for Nginx Proxy Manager.
|
||||
|
||||
Source: [`nginx-proxy-manager-mcp`](https://pypi.org/project/nginx-proxy-manager-mcp/)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `NPM_URL` | Yes | Nginx Proxy Manager instance URL (e.g. `https://npm.corentic.eu`) |
|
||||
| `NPM_EMAIL` | Yes | Login email |
|
||||
| `NPM_PASSWORD` | Yes | Login password |
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name nginx-proxy-manager-mcp \
|
||||
-p 8105:8105 \
|
||||
-e NPM_URL=https://npm.corentic.eu \
|
||||
-e NPM_EMAIL=admin@example.com \
|
||||
-e NPM_PASSWORD=your_password \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-nginx-proxy-manager:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
Proxy hosts management, stream management, access lists, SSL certificates, audit logs.
|
||||
37
playwright/README.md
Normal file
37
playwright/README.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# playwright-mcp
|
||||
|
||||
MCP server for browser automation via Playwright.
|
||||
|
||||
Source: [`@playwright/mcp`](https://npm.im/@playwright/mcp)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `PLAYWRIGHT_MCP_HEADLESS` | No | Run headless (`true`/`false`, default: `true`) |
|
||||
| `PLAYWRIGHT_MCP_BROWSER` | No | Browser to use (`firefox`, `chromium`, `webkit`, default: `chromium`) |
|
||||
|
||||
## Usage
|
||||
|
||||
This MCP runs better natively (not in a container) because it needs direct display access for headed mode and browser binaries.
|
||||
|
||||
```bash
|
||||
npx @playwright/mcp
|
||||
# or with options:
|
||||
PLAYWRIGHT_MCP_HEADLESS=true PLAYWRIGHT_MCP_BROWSER=firefox npx @playwright/mcp
|
||||
```
|
||||
|
||||
For headed mode (visible browser window), ensure a display is available and run:
|
||||
|
||||
```bash
|
||||
PLAYWRIGHT_MCP_HEADLESS=false PLAYWRIGHT_MCP_BROWSER=firefox npx @playwright/mcp
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- Navigation (goto, back, forward, refresh)
|
||||
- Element interaction (click, fill, select, hover)
|
||||
- Screenshots (full page, element)
|
||||
- Form filling and submission
|
||||
- Console and network monitoring
|
||||
- PDF generation
|
||||
|
|
@ -1,14 +1,6 @@
|
|||
FROM node:22-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
python3 python3-pip python3-venv \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pip3 install --no-cache-dir --break-system-packages portainer-mcp && \
|
||||
npm install -g mcp-proxy@6.5.2
|
||||
|
||||
ENV PORTAINER_VERIFY_SSL=false
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends python3 python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
|
||||
RUN pip3 install --no-cache-dir --break-system-packages "mcp-portainer~=2.42.0" && npm install -g mcp-proxy@6.5.2
|
||||
ENV PORTAINER_TLS_VERIFY=false
|
||||
EXPOSE 8110
|
||||
|
||||
CMD ["mcp-proxy", "--port", "8110", "--host", "0.0.0.0", "--", "portainer-mcp"]
|
||||
CMD ["mcp-proxy", "--port", "8110", "--host", "0.0.0.0", "--", "mcp-portainer"]
|
||||
|
|
@ -1,17 +1,16 @@
|
|||
# portainer-mcp
|
||||
|
||||
MCP server for Portainer (Docker/K8s management).
|
||||
MCP server for Portainer (Docker/K8s management). Uses API key authentication.
|
||||
|
||||
Source: [`portainer-mcp`](https://pypi.org/project/portainer-mcp/) (v0.5.1)
|
||||
Source: [`mcp-portainer`](https://pypi.org/project/mcp-portainer/) (v2.42.0)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `PORTAINER_URL` | Yes | Base URL of the Portainer instance (e.g. `https://portainer.corentic.eu`) |
|
||||
| `PORTAINER_USERNAME` | Yes | Portainer username (use `admin` if using API key) |
|
||||
| `PORTAINER_PASSWORD` | Yes | Portainer password or API key |
|
||||
| `PORTAINER_VERIFY_SSL` | No | Verify SSL certificate (`true`/`false`, default: `true`) |
|
||||
| `PORTAINER_API_KEY` | Yes | Portainer API key (generate in Portainer UI: user avatar → Account Settings → Access Tokens → Add token) |
|
||||
| `PORTAINER_TLS_VERIFY` | No | Verify SSL certificate (`true`/`false`, default: `true`) |
|
||||
| `PORTAINER_DEFAULT_ENDPOINT` | No | Default endpoint ID (default: `1`) |
|
||||
| `PORTAINER_TIMEOUT` | No | Request timeout in seconds (default: `30`) |
|
||||
| `PORTAINER_LONG_TIMEOUT` | No | Long request timeout in seconds (default: `300`) |
|
||||
|
|
@ -23,67 +22,13 @@ docker run -d \
|
|||
--name portainer-mcp \
|
||||
-p 8110:8110 \
|
||||
-e PORTAINER_URL=https://portainer.corentic.eu \
|
||||
-e PORTAINER_USERNAME=admin \
|
||||
-e PORTAINER_PASSWORD=your_api_key_or_password \
|
||||
-e PORTAINER_VERIFY_SSL=false \
|
||||
-e PORTAINER_API_KEY=ptr_xxx \
|
||||
-e PORTAINER_TLS_VERIFY=false \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-portainer:latest
|
||||
```
|
||||
|
||||
To get an API key: Portainer web UI → click your avatar → Account Settings → Access Tokens → Add token. Give it a name and copy the token immediately (shown once).
|
||||
|
||||
## Tools
|
||||
|
||||
### Auth & System
|
||||
- **`portainer_status`** — Verify connection to Portainer and auth status
|
||||
- **`portainer_docker_info`** — Docker system info. Params: `endpoint_id`
|
||||
- **`portainer_docker_disk_usage`** — Docker disk usage. Params: `endpoint_id`
|
||||
|
||||
### Endpoints (Environments)
|
||||
- **`portainer_endpoints_list`** — List all environments (Docker/K8s endpoints)
|
||||
- **`portainer_endpoint_inspect`** — Inspect endpoint details. Params: `endpoint_id`
|
||||
|
||||
### Containers
|
||||
- **`portainer_containers_list`** — List containers. Params: `endpoint_id`, `all`, `limit`, `filters`
|
||||
- **`portainer_container_inspect`** — Inspect container. Params: `endpoint_id`, `container_id`
|
||||
- **`portainer_container_start`** — Start container. Params: `endpoint_id`, `container_id`
|
||||
- **`portainer_container_stop`** — Stop container. Params: `endpoint_id`, `container_id`
|
||||
- **`portainer_container_restart`** — Restart container. Params: `endpoint_id`, `container_id`
|
||||
- **`portainer_container_remove`** — Remove container. Params: `endpoint_id`, `container_id`, `force`, `remove_volumes`
|
||||
- **`portainer_container_logs`** — Get container logs. Params: `endpoint_id`, `container_id`, `tail`, `stdout`, `stderr`
|
||||
- **`portainer_container_logs_grep`** — Search container logs for pattern. Params: `endpoint_id`, `container_id`, `pattern`, `tail`, `stdout`, `stderr`
|
||||
- **`portainer_container_stats`** — Get container stats (CPU, memory, etc.). Params: `endpoint_id`, `container_id`
|
||||
- **`portainer_container_exec`** — Execute command in container. Params: `endpoint_id`, `container_id`, `command`, `workdir`, `timeout`
|
||||
|
||||
### Stacks
|
||||
- **`portainer_stacks_list`** — List stacks. Params: `endpoint_id`
|
||||
- **`portainer_stack_inspect`** — Inspect stack. Params: `stack_id`
|
||||
- **`portainer_stack_deploy`** — Deploy stack from compose. Params: `endpoint_id`, `name`, `compose_content`, `env_vars`
|
||||
- **`portainer_stack_update`** — Update stack compose. Params: `stack_id`, `endpoint_id`, `compose_content`, `env_vars`, `prune`, `pull_image`
|
||||
- **`portainer_stack_delete`** — Delete stack. Params: `stack_id`, `endpoint_id`
|
||||
- **`portainer_stack_start`** — Start stack. Params: `stack_id`, `endpoint_id`
|
||||
- **`portainer_stack_stop`** — Stop stack. Params: `stack_id`, `endpoint_id`
|
||||
- **`portainer_stack_logs_errors`** — Scan stack container logs for errors. Params: `endpoint_id`, `stack_name`
|
||||
- **`portainer_laravel_errors`** — Scan for Laravel errors in stack containers. Params: `endpoint_id`, `stack_name`
|
||||
- **`portainer_laravel_tinker`** — Run Laravel tinker in container. Params: `endpoint_id`, `stack_name`, `command`, `service`
|
||||
|
||||
### Images
|
||||
- **`portainer_images_list`** — List images. Params: `endpoint_id`, `with_usage`
|
||||
- **`portainer_image_inspect`** — Inspect image. Params: `endpoint_id`, `image_ref`
|
||||
- **`portainer_image_pull`** — Pull image from registry. Params: `endpoint_id`, `image`, `registry_auth`
|
||||
- **`portainer_image_remove`** — Remove image. Params: `endpoint_id`, `image_ref`, `force`
|
||||
|
||||
### Networks
|
||||
- **`portainer_networks_list`** — List networks. Params: `endpoint_id`
|
||||
- **`portainer_network_inspect`** — Inspect network. Params: `endpoint_id`, `network_id`
|
||||
- **`portainer_network_create`** — Create network. Params: `endpoint_id`, `name`, `driver`, `subnet`, `gateway`
|
||||
- **`portainer_network_remove`** — Remove network. Params: `endpoint_id`, `network_id`
|
||||
- **`portainer_network_connect`** — Connect container to network. Params: `endpoint_id`, `network_id`, `container_id`
|
||||
- **`portainer_network_disconnect`** — Disconnect container from network. Params: `endpoint_id`, `network_id`, `container_id`, `force`
|
||||
|
||||
### Volumes
|
||||
- **`portainer_volumes_list`** — List volumes. Params: `endpoint_id`
|
||||
- **`portainer_volume_inspect`** — Inspect volume. Params: `endpoint_id`, `volume_id`
|
||||
- **`portainer_volume_create`** — Create volume. Params: `endpoint_id`, `name`, `driver`, `labels`
|
||||
- **`portainer_volume_remove`** — Remove volume. Params: `endpoint_id`, `volume_id`, `force`
|
||||
|
||||
### Users
|
||||
- **`portainer_users_list`** — List Portainer users
|
||||
- **`portainer_user_inspect`** — Inspect user. Params: `user_id`
|
||||
Auth, endpoints, containers (list, inspect, start/stop/restart, logs, exec, stats), stacks (deploy, update, delete), images, networks, volumes, users (193+ tools).
|
||||
|
|
@ -1,7 +1,4 @@
|
|||
FROM node:22-slim
|
||||
|
||||
RUN npm install -g mcp-proxy@6.5.2 mcp-postgres@1.3.0
|
||||
|
||||
RUN npm install -g mcp-proxy@6.5.2 @modelcontextprotocol/server-postgres@0.6.2
|
||||
EXPOSE 8109
|
||||
|
||||
CMD ["mcp-proxy", "--port", "8109", "--host", "0.0.0.0", "--", "mcp-postgres"]
|
||||
CMD ["mcp-proxy", "--port", "8109", "--host", "0.0.0.0", "--", "mcp-server-postgres"]
|
||||
|
|
@ -2,19 +2,13 @@
|
|||
|
||||
MCP server for PostgreSQL database operations.
|
||||
|
||||
Source: [`mcp-postgres`](https://npm.im/mcp-postgres)
|
||||
Source: [`@modelcontextprotocol/server-postgres`](https://npm.im/@modelcontextprotocol/server-postgres)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Uses standard PostgreSQL environment variables via `pg` module:
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `PGHOST` | Yes | PostgreSQL host |
|
||||
| `PGPORT` | No | PostgreSQL port (default: `5432`) |
|
||||
| `PGUSER` | Yes | PostgreSQL user |
|
||||
| `PGPASSWORD` | Yes | PostgreSQL password |
|
||||
| `PGDATABASE` | Yes | PostgreSQL database name |
|
||||
| `DATABASE_URL` | Yes | Full PostgreSQL connection URL (e.g. `postgresql://user:pass@host:5432/db?sslmode=disable`) |
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
@ -22,11 +16,7 @@ Uses standard PostgreSQL environment variables via `pg` module:
|
|||
docker run -d \
|
||||
--name postgresql-mcp \
|
||||
-p 8109:8109 \
|
||||
-e PGHOST=postgres.example.com \
|
||||
-e PGPORT=5432 \
|
||||
-e PGUSER=myuser \
|
||||
-e PGPASSWORD=secret \
|
||||
-e PGDATABASE=mydb \
|
||||
-e DATABASE_URL=postgresql://user:pass@host:5432/mydb \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-postgresql:latest
|
||||
```
|
||||
|
||||
|
|
@ -36,4 +26,4 @@ docker run -d \
|
|||
- `execute` — Execute write SQL (INSERT, UPDATE, DELETE, DDL)
|
||||
- `list_tables` — List tables in the database
|
||||
- `describe_table` — Get schema info for a specific table
|
||||
- `get_table_stats` — Row counts and table statistics
|
||||
- `get_table_stats` — Row counts and table statistics
|
||||
|
|
@ -1,11 +1,5 @@
|
|||
FROM python:3.12-slim
|
||||
|
||||
RUN pip install --no-cache-dir semaphore-mcp
|
||||
|
||||
ENV MCP_TRANSPORT=http \
|
||||
MCP_HOST=0.0.0.0 \
|
||||
MCP_PORT=8103
|
||||
|
||||
ENV MCP_TRANSPORT=http MCP_HOST=0.0.0.0 MCP_PORT=8103
|
||||
EXPOSE 8103
|
||||
|
||||
CMD ["semaphore-mcp"]
|
||||
CMD ["semaphore-mcp"]
|
||||
|
|
@ -2,15 +2,15 @@
|
|||
|
||||
MCP server for SemaphoreUI Ansible automation.
|
||||
|
||||
Source: [`cloin/semaphore-mcp`](https://github.com/cloin/semaphore-mcp) (v1.0.4)
|
||||
Source: [`cloin/semaphore-mcp`](https://github.com/cloin/semaphore-mcp)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `SEMAPHORE_URL` | Yes | Base URL of the SemaphoreUI instance (e.g. `https://semaphore.corentic.eu`) |
|
||||
| `SEMAPHORE_TOKEN` | Yes | API token from SemaphoreUI user settings |
|
||||
| `MCP_PORT` | No | Port for the MCP HTTP server (default: `8000`) |
|
||||
| `SEMAPHORE_API_TOKEN` | Yes | API token from SemaphoreUI user settings |
|
||||
| `MCP_PORT` | No | Port for the MCP HTTP server (default: `8000`, overridden to `8103`) |
|
||||
| `MCP_TRANSPORT` | No | Transport mode (`http` or `stdio`, default: `http`) |
|
||||
| `MCP_HOST` | No | Bind address (default: `0.0.0.0`) |
|
||||
|
||||
|
|
@ -21,78 +21,12 @@ docker run -d \
|
|||
--name semaphore-mcp \
|
||||
-p 8103:8103 \
|
||||
-e SEMAPHORE_URL=https://semaphore.corentic.eu \
|
||||
-e SEMAPHORE_TOKEN=your_token \
|
||||
-e SEMAPHORE_API_TOKEN=your_token \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-semaphore:latest
|
||||
```
|
||||
|
||||
This MCP uses HTTP transport natively (no mcp-proxy wrapper). Connect via:
|
||||
|
||||
```
|
||||
http://host:8103/mcp
|
||||
```
|
||||
This MCP uses native HTTP transport (no mcp-proxy). Connect via SSE at `http://host:8103/mcp`.
|
||||
|
||||
## Tools
|
||||
|
||||
### Projects
|
||||
- **`list_projects`** — List all projects
|
||||
- **`get_project`** — Get project details. Params: `project_id`
|
||||
- **`create_project`** — Create project. Params: `name`, `alert`, `alert_chat`, `max_parallel_tasks`, `project_type`, `demo`
|
||||
- **`update_project`** — Update project. Params: `project_id`, `name`, `alert`, `alert_chat`, `max_parallel_tasks`
|
||||
- **`delete_project`** — Delete project. Params: `project_id`
|
||||
|
||||
### Templates
|
||||
- **`list_templates`** — List templates. Params: `project_id`
|
||||
- **`get_template`** — Get template. Params: `project_id`, `template_id`
|
||||
- **`create_template`** — Create template. Params: `project_id`, `name`, `playbook`, `inventory_id`, `repository_id`, `environment_id`, `description`, `arguments`, `allow_override_args_in_task`, `suppress_success_alerts`, `app`, `git_branch`, `survey_vars`, `vaults`, `template_type`, `start_version`, `build_template_id`, `autorun`, `view_id`, `task_params`
|
||||
- **`update_template`** — Update template. Params: `project_id`, `template_id`, plus same fields as create
|
||||
- **`delete_template`** — Delete template. Params: `project_id`, `template_id`
|
||||
- **`stop_all_template_tasks`** — Stop all running tasks for a template. Params: `project_id`, `template_id`
|
||||
|
||||
### Schedules
|
||||
- **`list_schedules`** — List schedules. Params: `project_id`
|
||||
- **`list_template_schedules`** — List schedules per template. Params: `project_id`, `template_id`
|
||||
- **`get_schedule`** — Get schedule. Params: `project_id`, `schedule_id`
|
||||
- **`create_schedule`** — Create schedule. Params: `project_id`, `template_id`, `name`, `cron_format`, `active`, `schedule_type` ("" for cron or "run_at"), `run_at`, `task_params`, `delete_after_run`, `repository_id`
|
||||
- **`update_schedule`** — Update schedule. Params: `project_id`, `schedule_id`, plus same fields as create
|
||||
- **`set_schedule_active`** — Enable/disable schedule. Params: `project_id`, `schedule_id`, `active`
|
||||
- **`delete_schedule`** — Delete schedule. Params: `project_id`, `schedule_id`
|
||||
- **`validate_schedule_cron_format`** — Validate cron expression. Params: `project_id`, `cron_format`
|
||||
|
||||
### Tasks
|
||||
- **`list_tasks`** — List tasks. Params: `project_id`, `limit`, `status`, `tags`
|
||||
- **`get_task`** — Get task details. Params: `project_id`, `task_id`
|
||||
- **`run_task`** — Run task from template. Params: `template_id`, `project_id`, `environment`, `limit`, `dry_run`, `diff`, `debug`, `playbook`, `git_branch`, `message`, `arguments`, `inventory_id`, `follow`
|
||||
- **`get_latest_failed_task`** — Most recent failed task. Params: `project_id`
|
||||
- **`filter_tasks`** — Filter tasks by criteria. Params: `project_id`, `status`, `limit`, `use_last_tasks`
|
||||
- **`stop_task`** — Stop running task. Params: `project_id`, `task_id`
|
||||
- **`bulk_stop_tasks`** — Stop multiple tasks. Params: `project_id`, `task_ids`, `confirm`
|
||||
- **`get_waiting_tasks`** — List all waiting tasks. Params: `project_id`
|
||||
- **`get_task_raw_output`** — Get task raw output. Params: `project_id`, `task_id`
|
||||
- **`analyze_task_failure`** — Analyze failed task. Params: `project_id`, `task_id`
|
||||
- **`bulk_analyze_failures`** — Analyze multiple failed tasks. Params: `project_id`, `limit`
|
||||
|
||||
### Environments
|
||||
- **`list_environments`** — List environments. Params: `project_id`
|
||||
- **`get_environment`** — Get environment. Params: `project_id`, `environment_id`
|
||||
- **`create_environment`** — Create environment. Params: `project_id`, `name`, `env_data`
|
||||
- **`update_environment`** — Update environment. Params: `project_id`, `environment_id`, `name`, `env_data`
|
||||
- **`delete_environment`** — Delete environment. Params: `project_id`, `environment_id`
|
||||
|
||||
### Inventory
|
||||
- **`list_inventory`** — List inventory. Params: `project_id`
|
||||
- **`get_inventory`** — Get inventory item. Params: `project_id`, `inventory_id`
|
||||
- **`create_inventory`** — Create inventory. Params: `project_id`, `name`, `inventory_data`, `inventory_type`
|
||||
- **`update_inventory`** — Update inventory. Params: `project_id`, `inventory_id`, `name`, `inventory_data`, `inventory_type`
|
||||
- **`delete_inventory`** — Delete inventory. Params: `project_id`, `inventory_id`
|
||||
|
||||
### Repositories
|
||||
- **`list_repositories`** — List repos. Params: `project_id`
|
||||
- **`get_repository`** — Get repo. Params: `project_id`, `repository_id`
|
||||
- **`create_repository`** — Create repo. Params: `project_id`, `name`, `git_url`, `git_branch`, `ssh_key_id`
|
||||
- **`update_repository`** — Update repo. Params: `project_id`, `repository_id`, `name`, `git_url`, `git_branch`, `ssh_key_id`
|
||||
- **`delete_repository`** — Delete repo. Params: `project_id`, `repository_id`
|
||||
|
||||
### Access Keys
|
||||
- **`list_access_keys`** — List access keys. Params: `project_id`
|
||||
- **`create_access_key`** — Create access key. Params: `project_id`, `name`, `key_type` (none/ssh/login_password), `login`, `password`, `private_key`
|
||||
- **`delete_access_key`** — Delete access key. Params: `project_id`, `key_id`
|
||||
Projects, templates, schedules, tasks, environments, inventory, repositories, access keys (98+ tools).
|
||||
4
taiga/Dockerfile
Normal file
4
taiga/Dockerfile
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
FROM node:22-slim
|
||||
RUN npm install -g mcp-proxy@6.5.2 @illodev/taiga-mcp@1.0.0
|
||||
EXPOSE 8106
|
||||
CMD ["mcp-proxy", "--port", "8106", "--host", "0.0.0.0", "--", "taiga-mcp"]
|
||||
29
taiga/README.md
Normal file
29
taiga/README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# taiga-mcp
|
||||
|
||||
MCP server for Taiga project management.
|
||||
|
||||
Source: [`@illodev/taiga-mcp`](https://npm.im/@illodev/taiga-mcp)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `TAIGA_URL` | Yes | Taiga instance URL (e.g. `https://taiga.corentic.eu`) |
|
||||
| `TAIGA_USERNAME` | Yes | Taiga login username |
|
||||
| `TAIGA_PASSWORD` | Yes | Taiga login password |
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name taiga-mcp \
|
||||
-p 8106:8106 \
|
||||
-e TAIGA_URL=https://taiga.corentic.eu \
|
||||
-e TAIGA_USERNAME=your_user \
|
||||
-e TAIGA_PASSWORD=your_password \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-taiga:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
Projects, user stories, tasks, issues, sprints, wiki pages, team management.
|
||||
5
web-search/Dockerfile
Normal file
5
web-search/Dockerfile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
FROM node:22-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends python3 python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
|
||||
RUN pip3 install --no-cache-dir --break-system-packages web-researcher-mcp && npm install -g mcp-proxy@6.5.2
|
||||
EXPOSE 8116
|
||||
CMD ["mcp-proxy", "--port", "8116", "--host", "0.0.0.0", "--", "web-researcher-mcp"]
|
||||
23
web-search/README.md
Normal file
23
web-search/README.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# web-researcher-mcp
|
||||
|
||||
MCP server for web search and content fetching.
|
||||
|
||||
Source: [`web-researcher-mcp`](https://pypi.org/project/web-researcher-mcp/)
|
||||
|
||||
## Environment Variables
|
||||
|
||||
None required.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name web-search-mcp \
|
||||
-p 8116:8116 \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-web-search:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- `web_search` — Search the web
|
||||
- `web_fetch` — Fetch and extract content from a URL
|
||||
|
|
@ -1,7 +1,4 @@
|
|||
FROM node:22-slim
|
||||
|
||||
RUN npm install -g mcp-proxy@6.5.2 @devpuccino/mcp-woodpecker@1.1.2
|
||||
|
||||
EXPOSE 8102
|
||||
|
||||
CMD ["mcp-proxy", "--port", "8102", "--host", "0.0.0.0", "--", "mcp-woodpecker"]
|
||||
CMD ["mcp-proxy", "--port", "8102", "--host", "0.0.0.0", "--", "mcp-woodpecker"]
|
||||
|
|
@ -8,7 +8,7 @@ Source: [`@devpuccino/mcp-woodpecker`](https://www.npmjs.com/package/@devpuccino
|
|||
|
||||
| Variable | Required | Description |
|
||||
|----------|----------|-------------|
|
||||
| `WOODPECKER_URL` | Yes | Base URL of the Woodpecker instance (e.g. `https://woodpecker.corentic.eu`) |
|
||||
| `WOODPECKER_URL` | Yes | Base URL of the Woodpecker instance (e.g. `https://ci.corentic.eu`) |
|
||||
| `WOODPECKER_API_KEY` | Yes | Woodpecker API key with required scopes |
|
||||
|
||||
## Usage
|
||||
|
|
@ -17,43 +17,11 @@ Source: [`@devpuccino/mcp-woodpecker`](https://www.npmjs.com/package/@devpuccino
|
|||
docker run -d \
|
||||
--name woodpecker-mcp \
|
||||
-p 8102:8102 \
|
||||
-e WOODPECKER_URL=https://woodpecker.corentic.eu \
|
||||
-e WOODPECKER_API_KEY=your_key_here \
|
||||
-e WOODPECKER_URL=https://ci.corentic.eu \
|
||||
-e WOODPECKER_API_KEY=your_key \
|
||||
forgejo.corentic.eu/corentic/mcp-fleet-woodpecker:latest
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- `activate_repository`
|
||||
- `cancel_pipeline`
|
||||
- `create_cron`
|
||||
- `create_org_secret`
|
||||
- `create_registry`
|
||||
- `create_secret`
|
||||
- `delete_cron`
|
||||
- `delete_org_secret`
|
||||
- `delete_pipeline_logs`
|
||||
- `delete_registry`
|
||||
- `delete_repository`
|
||||
- `delete_secret`
|
||||
- `get_cron`
|
||||
- `get_current_user`
|
||||
- `get_org_secret`
|
||||
- `get_pipeline`
|
||||
- `get_pipeline_logs`
|
||||
- `get_pipeline_status`
|
||||
- `get_registry`
|
||||
- `get_repository`
|
||||
- `get_secret`
|
||||
- `list_crons`
|
||||
- `list_org_secrets`
|
||||
- `list_pipelines`
|
||||
- `list_registries`
|
||||
- `list_repositories`
|
||||
- `list_secrets`
|
||||
- `lookup_organization`
|
||||
- `trigger_pipeline`
|
||||
- `update_cron`
|
||||
- `update_org_secret`
|
||||
- `update_repository`
|
||||
- `update_secret`
|
||||
Repositories, pipelines, cron jobs, secrets, registries, organizations (33 tools total).
|
||||
Loading…
Add table
Reference in a new issue