Sandbox for playing around with Claude Code. Built with Bun.js and the official MCP TypeScript SDK.
Co-authored together with Claude Code!
Project board: https://github.com/users/vredchenko/projects/2/views/1
Github Pages: https://vredchenko.github.io/claude-code-experiments/
-
Copy environment template:
cp .env.template .env
-
Edit
.env
with your credentials:GITLAB_TOKEN
: Your GitLab personal access tokenMINIO_ROOT_PASSWORD
: Your preferred MinIO password
-
Run setup script:
bun start.ts
-
Restart Claude Code to load MCP servers
This project requires the following development dependencies:
- Claude Code - Anthropic's agentic coding tool (Claude Code alternatives are possible but not tested)
- Bun.js - Fast JavaScript runtime and package manager
- Docker - Container platform for services
- Docker Compose - Multi-container application orchestration
Additional MCP component-specific dependencies are automatically installed during setup and include specialized libraries for GitLab integration, database connections, and storage operations.
Through Claude Code, you can now:
- Create and manage storage buckets
- Upload/download files
- Browse and organize objects
- Access web UI at http://localhost:9001
- Full-featured database with document, graph, key-value, and time-series support
- Natural language queries via Claude Code → SurrealQL translation
- Relationship modeling and graph traversal
- Real-time subscriptions and live queries
- Access database at http://localhost:8000
- Official SurrealMCP integration for comprehensive tooling
- List issues and merge requests
- View project information
- Access CI/CD pipeline data
- Works with GitLab.com or self-hosted instances
Custom Model Context Protocol (MCP) servers for various integrations:
gitlab-cli
- Usesglab
CLI commands for GitLab operationsgitlab-api
- Direct GitLab REST API integration
minio-backend
- MinIO object storage operationsredis-backend
- Redis cache operationssurrealdb-backend
- SurrealDB multi-model database operations
mcp/
└── servers/
├── gitlab-api/
│ └── index.ts
├── gitlab-cli/
│ └── index.ts
├── minio-backend/
│ └── index.ts
This project includes two MCP configuration files for maximum compatibility:
.mcp.json
- Used by Claude Code CLImcp-servers-config.json
- Standard MCP format for other AI providers
Both files define the same servers and are kept in sync for compatibility.
By default, all MCP servers are disabled to save on token usage and improve performance. MCP servers are selectively enabled as needed:
-
Template files contain complete configurations:
.devtooling/configs/.mcp.template.json
- Complete Claude Code MCP configuration.devtooling/configs/mcp-servers-config.template.json
- Complete standard MCP configuration
-
Actual config files start empty:
-
.mcp.json
- Contains only{"mcpServers": {}}
-
mcp-servers-config.json
- Contains only{"mcpServers": {}}
-
-
To enable specific MCP servers:
# Copy desired server configs from template to actual config # Example: Enable MinIO and GitLab API servers # Manually copy the server objects from .devtooling/configs/ template files to root config files
-
Available MCP servers:
minio-backend
- MinIO object storage operationsgitlab-api
- Direct GitLab REST API integrationgitlab-cli
- GitLab CLI operationsredis-backend
- Redis cache operationssurrealdb-backend
- SurrealDB database operationsorlop-cli
- Orlop CLI operationskarakeep-cli
- Karakeep bookmark manager operations
-
After enabling servers, restart Claude Code to load the new configuration
All servers are configured for auto-start and can be run individually:
# GitLab servers
bun run mcp/servers/gitlab-cli/index.ts
bun run mcp/servers/gitlab-api/index.ts
# Storage servers
bun run mcp/servers/minio-backend/index.ts
bun run mcp/servers/redis-backend/index.ts
bun run mcp/servers/surrealdb-backend/index.ts
GitLab Servers:
- Listing and viewing issues
- Listing and viewing merge requests
- Project information
- Pipeline status (API server only)
MinIO Server:
- Create/list buckets
- Upload/download/delete objects
- List objects with prefix filtering
Redis Server:
- Key-value operations (get/set/delete)
- List operations (push/pop/range)
- Hash operations
- Pub/sub messaging
SurrealDB Server: (via official SurrealMCP sidecar)
- Architecture: TypeScript MCP Wrapper → Official SurrealMCP Docker Container → SurrealDB Community Edition
- Database Operations: Full SurrealQL query execution (
query
,select
,insert
,create
,upsert
,update
,delete
) - Relationship Management: Graph operations (
relate
) for connecting data across tables - Connection Management: Database switching (
connect_endpoint
,use_namespace
,use_database
) - Administration: List resources (
list_namespaces
,list_databases
), health monitoring - Multi-Model Storage: Documents, graphs, key-value, time-series in one database
- Claude Code Integration: Natural language → SurrealQL query translation, schema design assistance
The project includes the following Docker services in docker-compose.yml
:
Database & Storage:
surrealdb
(surrealdb/surrealdb:latest
): Multi-model database on port 8000surrealdb-mcp
(surrealdb/surrealmcp:latest
): Official SurrealMCP server on port 3004redis
(redis:7-alpine
): Redis cache on port 6379minio
(minio/minio:latest
): Object storage on ports 9000/9001
Service Dependencies:
surrealdb-mcp
depends onsurrealdb
health check- All services connected via
dev-network
for internal communication - Persistent volumes for data storage
Key environment variables (see .env.template
for full list):
SURREALDB_USERNAME/PASSWORD
: Database authenticationSURREALDB_MCP_URL
: SurrealMCP sidecar endpoint (http://localhost:3004)MINIO_ROOT_PASSWORD
: MinIO admin passwordGITLAB_TOKEN
: GitLab API access token