mcp-devenv
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-devenvwhat's running on port 3000?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iwomm-mcp
An MCP server that gives your AI assistant full awareness of your local dev environment — running processes, Docker containers, git state, open ports, log files, and more.
Stop copy-pasting context. Let the AI ask for what it needs.

Tools
Tool | What it answers |
| What Node/Python/Go processes are running? What's on port 3000? |
| Which containers are up? Are they healthy? What are their ports? |
| What branch am I on? What's dirty? Am I ahead/behind? |
| What keys does my |
| What's in my |
| What libraries am I using? ( |
| What's listening on this machine right now? |
| What did my API service log in the last 50 lines? |
| What does this codebase look like? (gitignore-aware) |
| Is |
Related MCP server: mcp-devtools
Language support
Most tools operate at the OS or network level and work regardless of stack. The table below calls out the gaps.
Tool | Node / TS | Java (Spring) | Go | Python | Ruby / .NET / Rust |
| ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ |
| ✅ | ⚠️ all JVM processes share the name | ✅ | ✅ | ✅ |
| ✅ | ⚠️ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ❌ | ❌ | ❌ |
| ✅ | ✅ | ✅ | ❌ | ❌ |
What still needs copy-paste
Some things Claude can't read yet — paste these into chat when needed:
Python deps:
requirements.txt,pyproject.toml,setup.pyRust deps:
Cargo.tomlRuby deps:
Gemfile.NET deps:
*.csprojPython/Rust config:
config.toml,settings.pyand similar formatsJava stack traces in logs:
get_recent_logsreturns raw lines — a trace split across the tail boundary may arrive incompleteSpring OAuth2 properties: keys containing
auth(e.g.authorization-grant-type) are masked by the secret-detection heuristic; paste the value if needed
Installation
Via npm (recommended)
npm install -g iwomm-mcpOr use it without installing — npx will fetch and run it on demand (see Claude config below).
From source
git clone https://github.com/dicoy/iwomm-mcp.git
cd iwomm-mcp
npm install
npm run buildAdd to Claude Code
claude mcp add devenv -- npx -y iwomm-mcpAdd to Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS:
{
"mcpServers": {
"devenv": {
"command": "npx",
"args": ["-y", "iwomm-mcp"]
}
}
}Restart Claude. You should see devenv in /mcp.
Optional: .mcp-context.yml
Drop this file at the root of any project to tell iwomm-mcp about your services:
# .mcp-context.yml
services:
api:
port: 3000
logs: ./logs/api.log
health_endpoint: /health
worker:
logs: ./logs/worker.log
postgres:
port: 5432
env_files:
- .env
- .env.local
# Keys matching these patterns will have their values revealed
# (even if they look like secrets). Supports exact match and * prefix glob.
reveal_env_patterns:
- NODE_ENV
- APP_*
- FEATURE_*Without this file, get_recent_logs works only with explicit file paths. All other tools work without any config.
Architecture
┌─────────────────────────────────────────────────────────┐
│ Claude (AI) │
└───────────────────────┬─────────────────────────────────┘
│ MCP protocol (stdio)
┌───────────────────────▼─────────────────────────────────┐
│ iwomm-mcp │
│ │
│ ┌──────────────────┐ ┌──────────────────────────┐ │
│ │ Tool Registry │ │ Providers │ │
│ │ │ │ │ │
│ │ get_git_status ─┼────▶│ IGitProvider │ │
│ │ get_docker_* ─┼────▶│ IDockerProvider │ │
│ │ get_processes ─┼────▶│ IProcessProvider │ │
│ │ ... │ │ IEnvProvider │ │
│ └──────────────────┘ │ ILogProvider │ │
│ │ IPortProvider │ │
│ ┌──────────────────┐ └──────────────┬───────────┘ │
│ │ .mcp-context │ │ │
│ │ .yml │ concrete impls │
│ └──────────────────┘ │ │
└───────────────────────────────────────────┼─────────────┘
│
┌─────────────┬───────────────┼──────────────┐
▼ ▼ ▼ ▼
ps/lsof simple-git dockerode fs/readlineDesign principles:
Provider pattern — every tool depends on an interface, not a concrete implementation. Tests mock the interface; the OS is never touched in tests.
One Zod schema per tool — the same schema drives both MCP input validation and TypeScript types. No duplication.
Typed error hierarchy —
DockerNotAvailableError,GitNotARepositoryError, etc. Callers can catch exactly what they expect.Composition root —
createServer()inserver.tsis the only place that wires interfaces to implementations. Everything else is pure.
Development
npm run dev # build in watch mode
npm run typecheck # tsc --noEmit
npm run lint # biome check
npm run lint:fix # biome check --write
npm run test # vitest run
npm run test:watch # vitest (interactive)
npm run ci # typecheck + lint + test + buildAdding a new tool
Create
src/tools/your-tool-name/schema.ts— Zod input schemaCreate
src/tools/your-tool-name/handler.ts— pure function, injected providersCreate
src/tools/your-tool-name/handler.test.ts— mock the providers, not the OSRegister in
src/registry/tool-registry.ts— oneserver.tool(...)call
If the tool needs a new system capability, add an interface to src/providers/ with a corresponding implementation. The handler never imports a concrete provider class.
Project structure
src/
├── config/
│ ├── loader.ts # .mcp-context.yml parser
│ └── schema.ts # Zod schema + inferred types
├── errors/
│ └── index.ts # typed error hierarchy
├── providers/
│ ├── docker.ts # IDockerProvider + DockerodeProvider
│ ├── env.ts # IEnvProvider + FsEnvProvider
│ ├── git.ts # IGitProvider + SimpleGitProvider
│ ├── log.ts # ILogProvider + FsLogProvider
│ ├── port.ts # IPortProvider + LsofPortProvider
│ └── process.ts # IProcessProvider + NodeProcessProvider
├── registry/
│ └── tool-registry.ts # wires tools to the MCP server
├── tools/
│ └── <tool-name>/
│ ├── schema.ts
│ ├── handler.ts
│ └── handler.test.ts
├── index.ts # stdio transport + startup
└── server.ts # createServer() factoryTech stack
Runtime | Node.js 20+ |
MCP SDK |
|
Validation |
|
Git |
|
Docker |
|
Shell |
|
Build |
|
Tests |
|
Lint + format |
|
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dicoy/iwomm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server