Build: Added even more MCP and LSP servers to the devcontainer
CI / lint (push) Successful in 14s
CI / typecheck (push) Successful in 27s
CI / security (push) Successful in 23s
CI / quality (push) Successful in 16s
CI / integration_tests (push) Has been cancelled
CI / unit_tests (push) Has been cancelled
CI / build (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / lint (push) Successful in 14s
CI / typecheck (push) Successful in 27s
CI / security (push) Successful in 23s
CI / quality (push) Successful in 16s
CI / integration_tests (push) Has been cancelled
CI / unit_tests (push) Has been cancelled
CI / build (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / coverage (push) Has been cancelled
This commit is contained in:
@@ -78,9 +78,6 @@ RUN curl -fsSL https://go.dev/dl/go1.22.10.linux-amd64.tar.gz | sudo tar -xzC /u
|
||||
# Install Claude Code CLI
|
||||
RUN sudo npm install -g @anthropic-ai/claude-code
|
||||
|
||||
# Install OpenCode CLI
|
||||
RUN sudo npm install -g opencode-ai
|
||||
|
||||
# Install development tools globally
|
||||
RUN sudo pip install --no-cache-dir \
|
||||
"ruff>=0.4.0" \
|
||||
@@ -114,15 +111,25 @@ RUN sudo pip install --no-cache-dir \
|
||||
"torch-geometric>=2.7.0" \
|
||||
"rdflib>=7.1.4" \
|
||||
"asv>=0.6.5"
|
||||
# Install MCP servers globally
|
||||
# Install MCP servers globally (npm-based)
|
||||
RUN sudo npm install -g \
|
||||
@crunchloop/mcp-devcontainers \
|
||||
kubernetes-mcp-server \
|
||||
@opentofu/opentofu-mcp-server \
|
||||
@modelcontextprotocol/server-filesystem \
|
||||
@modelcontextprotocol/server-memory \
|
||||
@modelcontextprotocol/server-sequential-thinking \
|
||||
@modelcontextprotocol/server-postgres \
|
||||
@treedy/pyright-mcp \
|
||||
mcp-server-docker \
|
||||
@cucumber/language-server && \
|
||||
# Install MCP servers (pip-based: fetch, git, sqlite) + LSP + security tools
|
||||
sudo pip install --no-cache-dir \
|
||||
robotframework-lsp
|
||||
robotframework-lsp \
|
||||
mcp-server-fetch \
|
||||
mcp-server-git \
|
||||
mcp-server-sqlite \
|
||||
semgrep
|
||||
|
||||
# Create directories for MCP server configurations and logs
|
||||
RUN mkdir -p ~/.config/claude-code \
|
||||
@@ -163,11 +170,20 @@ RUN claude mcp add devcontainers npx @crunchloop/mcp-devcontainers && \
|
||||
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem /app && \
|
||||
claude mcp add forgejo /usr/local/bin/forgejo-mcp && \
|
||||
claude mcp add test-runner /usr/local/bin/mcp-test-runner && \
|
||||
claude mcp add dev-kit dev-kit-mcp-server && \
|
||||
claude mcp add dev-kit uvx dev-kit-mcp-server -- --root-dir=/app && \
|
||||
claude mcp add venv-management uvx venv-mcp-server@git+https://github.com/sparfenyuk/venv-mcp-server.git && \
|
||||
claude mcp add uv uvx uv-mcp && \
|
||||
claude mcp add ruff ruff-mcp-server && \
|
||||
claude mcp add context7 npx @upstash/context7-mcp
|
||||
claude mcp add context7 npx @upstash/context7-mcp && \
|
||||
claude mcp add memory npx @modelcontextprotocol/server-memory && \
|
||||
claude mcp add git uvx mcp-server-git -- --repository /app && \
|
||||
claude mcp add fetch uvx mcp-server-fetch && \
|
||||
claude mcp add sequential-thinking npx @modelcontextprotocol/server-sequential-thinking && \
|
||||
claude mcp add pyright-mcp npx @treedy/pyright-mcp && \
|
||||
claude mcp add docker npx mcp-server-docker && \
|
||||
claude mcp add sqlite uvx mcp-server-sqlite && \
|
||||
claude mcp add postgres npx @modelcontextprotocol/server-postgres && \
|
||||
claude mcp add semgrep semgrep mcp
|
||||
|
||||
COPY .devcontainer/claude-code-config.json ${USER_HOME}/.config/claude-code/config.json
|
||||
|
||||
@@ -188,9 +204,22 @@ RUN sudo mkdir -p /tmp/uv-cache \
|
||||
#Install crush
|
||||
RUN sudo npm install -g @charmland/crush
|
||||
|
||||
#Install LSPs
|
||||
# Install marksman (Markdown LSP) binary
|
||||
RUN curl -fsSL https://github.com/artempyanykh/marksman/releases/latest/download/marksman-linux-x64 \
|
||||
-o /tmp/marksman && \
|
||||
sudo mv /tmp/marksman /usr/local/bin/marksman && \
|
||||
sudo chmod +x /usr/local/bin/marksman
|
||||
|
||||
# Install LSPs
|
||||
RUN sudo pip install python-lsp-server[all]
|
||||
|
||||
# Install additional LSP servers
|
||||
RUN sudo npm install -g \
|
||||
yaml-language-server \
|
||||
vscode-json-languageserver \
|
||||
dockerfile-language-server-nodejs \
|
||||
bash-language-server
|
||||
|
||||
ENV FORGEJO_URL="https://git.cleverthis.com/"
|
||||
COPY .devcontainer/crush.json ${USER_HOME}/.config/crush/crush.json
|
||||
|
||||
|
||||
@@ -77,12 +77,51 @@
|
||||
"args": []
|
||||
},
|
||||
"dev-kit": {
|
||||
"command": "dev-kit-mcp-server",
|
||||
"args": ["--root-dir=/app"]
|
||||
"command": "uvx",
|
||||
"args": ["dev-kit-mcp-server", "--root-dir=/app"]
|
||||
},
|
||||
"tofu": {
|
||||
"command": "npx",
|
||||
"args": ["@opentofu/opentofu-mcp-server"]
|
||||
},
|
||||
"memory": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-memory"]
|
||||
},
|
||||
"git": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-git", "--repository", "/app"]
|
||||
},
|
||||
"fetch": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"]
|
||||
},
|
||||
"sequential-thinking": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
|
||||
},
|
||||
"pyright-mcp": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@treedy/pyright-mcp"]
|
||||
},
|
||||
"docker": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-server-docker"]
|
||||
},
|
||||
"sqlite": {
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-sqlite"]
|
||||
},
|
||||
"postgres": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-postgres"],
|
||||
"env": {
|
||||
"POSTGRES_CONNECTION_STRING": "${POSTGRES_CONNECTION_STRING}"
|
||||
}
|
||||
},
|
||||
"semgrep": {
|
||||
"command": "semgrep",
|
||||
"args": ["mcp"]
|
||||
}
|
||||
},
|
||||
"ui": {
|
||||
|
||||
@@ -4,12 +4,36 @@
|
||||
"python": {
|
||||
"command": "pylsp"
|
||||
},
|
||||
"pyright": {
|
||||
"command": "pyright-langserver",
|
||||
"args": ["--stdio"]
|
||||
},
|
||||
"cucumber": {
|
||||
"command": "cucumber-language-server",
|
||||
"args": ["--stdio"]
|
||||
},
|
||||
"robotframework": {
|
||||
"command": "robotframework_ls"
|
||||
},
|
||||
"yaml": {
|
||||
"command": "yaml-language-server",
|
||||
"args": ["--stdio"]
|
||||
},
|
||||
"json": {
|
||||
"command": "vscode-json-languageserver",
|
||||
"args": ["--stdio"]
|
||||
},
|
||||
"dockerfile": {
|
||||
"command": "docker-langserver",
|
||||
"args": ["--stdio"]
|
||||
},
|
||||
"bash": {
|
||||
"command": "bash-language-server",
|
||||
"args": ["start"]
|
||||
},
|
||||
"markdown": {
|
||||
"command": "marksman",
|
||||
"args": ["server"]
|
||||
}
|
||||
},
|
||||
"mcp": {
|
||||
@@ -70,7 +94,8 @@
|
||||
},
|
||||
"dev-kit": {
|
||||
"type": "stdio",
|
||||
"command": "dev-kit-mcp-server",
|
||||
"command": "uvx",
|
||||
"args": ["dev-kit-mcp-server", "--root-dir=/app"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
@@ -87,6 +112,69 @@
|
||||
"args": ["@opentofu/opentofu-mcp-server"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"memory": {
|
||||
"type": "stdio",
|
||||
"command": "npx",
|
||||
"args": ["@modelcontextprotocol/server-memory"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"git": {
|
||||
"type": "stdio",
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-git", "--repository", "/app"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"fetch": {
|
||||
"type": "stdio",
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-fetch"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"sequential-thinking": {
|
||||
"type": "stdio",
|
||||
"command": "npx",
|
||||
"args": ["@modelcontextprotocol/server-sequential-thinking"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"pyright-mcp": {
|
||||
"type": "stdio",
|
||||
"command": "npx",
|
||||
"args": ["@treedy/pyright-mcp"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"docker": {
|
||||
"type": "stdio",
|
||||
"command": "npx",
|
||||
"args": ["mcp-server-docker"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"sqlite": {
|
||||
"type": "stdio",
|
||||
"command": "uvx",
|
||||
"args": ["mcp-server-sqlite"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"postgres": {
|
||||
"type": "stdio",
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-postgres"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
},
|
||||
"semgrep": {
|
||||
"type": "stdio",
|
||||
"command": "semgrep",
|
||||
"args": ["mcp"],
|
||||
"timeout": 600,
|
||||
"disabled": false
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"dev-kit": {
|
||||
"type": "local",
|
||||
"command": ["dev-kit-mcp-server", "--root-dir=/app"],
|
||||
"command": ["uvx", "dev-kit-mcp-server", "--root-dir=/app"],
|
||||
"enabled": true
|
||||
},
|
||||
"venv-management": {
|
||||
@@ -55,6 +55,54 @@
|
||||
"type": "local",
|
||||
"command": ["npx", "-y", "@upstash/context7-mcp"],
|
||||
"enabled": true
|
||||
},
|
||||
"memory": {
|
||||
"type": "local",
|
||||
"command": ["npx", "@modelcontextprotocol/server-memory"],
|
||||
"enabled": true
|
||||
},
|
||||
"git": {
|
||||
"type": "local",
|
||||
"command": ["uvx", "mcp-server-git", "--repository", "/app"],
|
||||
"enabled": true
|
||||
},
|
||||
"fetch": {
|
||||
"type": "local",
|
||||
"command": ["uvx", "mcp-server-fetch"],
|
||||
"enabled": true
|
||||
},
|
||||
"sequential-thinking": {
|
||||
"type": "local",
|
||||
"command": ["npx", "@modelcontextprotocol/server-sequential-thinking"],
|
||||
"enabled": true
|
||||
},
|
||||
"pyright-mcp": {
|
||||
"type": "local",
|
||||
"command": ["npx", "@treedy/pyright-mcp"],
|
||||
"enabled": true
|
||||
},
|
||||
"docker": {
|
||||
"type": "local",
|
||||
"command": ["npx", "mcp-server-docker"],
|
||||
"enabled": true
|
||||
},
|
||||
"sqlite": {
|
||||
"type": "local",
|
||||
"command": ["uvx", "mcp-server-sqlite"],
|
||||
"enabled": true
|
||||
},
|
||||
"postgres": {
|
||||
"type": "local",
|
||||
"command": ["npx", "-y", "@modelcontextprotocol/server-postgres"],
|
||||
"environment": {
|
||||
"POSTGRES_CONNECTION_STRING": "{env:POSTGRES_CONNECTION_STRING}"
|
||||
},
|
||||
"enabled": true
|
||||
},
|
||||
"semgrep": {
|
||||
"type": "local",
|
||||
"command": ["semgrep", "mcp"],
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user