MCP server that provides structured workspace for AI agents to store project context, tools, practices, and scripts.
WAGE (Workspace-Based Agent) is an MCP server that provides a structured workspace for AI agents working on software projects. It functions as a "smart notebook" where agents store:
- π Project Context β Documentation, concepts, and business rules
- π οΈ Tools β Information about external tools used
- π Practices β Best techniques for specific actions (tests, deploy, etc.)
- βοΈ Scripts β Utilities for task automation
Prerequisites:
- Node.js 18.x or higher
- MCP-compatible AI assistant (Qwen Code, Cline, etc.)
Setup:
cd wage/server
npm installConfiguration: Add the WAGE MCP server to your AI assistant's configuration. See Configuration below.
Usage: Simply ask your AI assistant to perform tasks. It will automatically use WAGE tools when needed:
"Create unit tests for the authentication module"
"List available contexts"
"Optimize database queries using the ruby agent"
| Benefit | Description |
|---|---|
| π§ Persistent Context | The agent remembers project details across sessions β no need to re-explain everything |
| π Knowledge Base | Automatically builds a documentation repository as the agent learns about your project |
| π― Consistency | Ensures the agent follows project-specific practices and conventions |
| π Local & Private | All context stays on your machine β nothing is shared or uploaded without your control |
| π Faster Onboarding | New team members (or agents) can quickly understand the project through stored context |
| π οΈ Reusable Automation | Scripts created during tasks are saved for future reuse |
| π Continuous Learning | The agent gets smarter with each task by updating context files |
| π No Merge Conflicts | Each developer has their own local wage/ folder β no Git conflicts |
| π MCP Integration | Works seamlessly with any MCP-compatible AI assistant |
Ensure you have installed on your machine:
| Tool | Minimum Version | Purpose |
|---|---|---|
| Node.js | 18.x or higher | Run JavaScript scripts (.js) |
| Python | 3.8 or higher | Run Python scripts (.py) β optional but recommended |
Verify installations:
node --version # Should display v18.x.x or higher
python --version # Should display Python 3.8.x or higher| Element | Language |
|---|---|
| Agent Communication | User preference (PT-BR, EN, ES, etc.) |
Documents in contexts/ |
English (WAGE standard) |
| Scripts | English (names and comments) |
π Why English in documents? Standardization for international teams, better compatibility with search/AI tools, and universal technical documentation convention.
-
Clone or download this repository:
git clone https://github.com/dracovanys/wage.git
-
Copy the
wagefolder to the root of your project:your-project/ βββ src/ βββ tests/ βββ package.json βββ wage/ β Copy here -
Add
wage/to.gitignorein your project (if it doesn't exist):# WAGE - Workspace-Based Agent (developer's local context) wage/
β οΈ Important: Thewage/folder must be in.gitignoreto prevent your local context from being accidentally committed to the repository, which would cause merge conflicts with other developers.
Configure the WAGE MCP server in your AI assistant. The server runs from wage/server/server.js.
Add to your ~/.qwen/settings.json:
{
"mcpServers": {
"wage": {
"command": "node",
"args": ["path/to/your-project/wage/server/server.js"],
"cwd": "path/to/your-project/wage/server"
}
}
}π‘ Tip: Use absolute paths or paths relative to your workspace root.
Add to your Cline MCP settings:
{
"mcpServers": {
"wage": {
"command": "node",
"args": ["path/to/your-project/wage/server/server.js"],
"cwd": "path/to/your-project/wage/server"
}
}
}Use the standard MCP configuration format:
{
"mcpServers": {
"wage": {
"command": "node",
"args": ["<absolute-path-to>/wage/server/server.js"],
"cwd": "<absolute-path-to>/wage/server"
}
}
}π‘ Note: Each project can have its own WAGE configuration. Context files are stored per-project in
wage/contexts/.
Simply ask your AI assistant to perform tasks. The assistant will automatically:
- Check
.gitignorebefore starting - Read relevant contexts from
contexts/ - Use scripts from
scripts/if available - Update contexts with new knowledge after completing
Examples:
- "Create unit tests for the authentication module"
- "Generate API documentation"
- "Refactor the button component following project practices"
- "List available contexts"
- "What agents are available?"
To use a specialized agent, simply mention it in your request:
Examples:
- "Use the ruby agent to refactor the user model"
- "Ask the frontend agent to update button styles"
- "The devops agent should configure the CI/CD pipeline"
The assistant will automatically:
- Activate the specialized agent
- Read agent-specific contexts from
contexts/<agent>/ - Use scripts from
scripts/<agent>/ - Save new knowledge to the agent's context folder
To see available agents:
What agents are available?
To create a new agent:
Create a new agent named <agent-name>
See agents/README.md for more details on creating and managing agents.
wage/
βββ README.md # This file
βββ workflow.md # Agent behavior rules
βββ agents/ # Custom agent definitions
β βββ README.md # How to create/manage agents
β βββ agent-template.md
β βββ <agent-name>.md # Your custom agents
βββ contexts/ # Agent's "smart notebook"
β βββ shared/ # Context shared by all agents
β β βββ tool-*.md # External tool documentation
β β βββ action-*.md # Best practices for actions
β β βββ concept-*.md# Concepts and business rules
β βββ <agent-name>/ # Agent-specific context
βββ scripts/ # Utility scripts (JS/Python)
β βββ shared/ # Scripts available to all agents
β βββ <agent-name>/ # Agent-specific scripts
βββ temp/ # Temporary workspace (cleaned each task)
You are an AI agent with access to the WAGE MCP server β a set of tools that provide structured workspace for software projects.
The WAGE workspace is located at ./wage/ and contains:
| Folder | Purpose |
|---|---|
agents/ |
Specialized agent definitions β check for specialized agents |
contexts/ |
Project knowledge base β stores project knowledge |
scripts/ |
Utility scripts you can use during tasks |
temp/ |
Temporary workspace (cleaned each task) |
| Tool | Description |
|---|---|
wage_check_gitignore |
Check if wage/ is in .gitignore. Must be called before any task. |
wage_list_agents |
List all available specialized agents |
wage_set_agent |
Activate a specialized agent (multi-agent mode) |
wage_get_current_agent |
Get the currently active agent |
wage_read_agent |
Read an agent definition file |
wage_list_contexts |
List available context files |
wage_read_context |
Read a context file |
wage_write_context |
Create or update a context file |
wage_list_scripts |
List available utility scripts |
wage_execute_script |
Execute a script (JS or Python) |
wage_clean_temp |
Clean the temp/ folder |
wage_get_workflow_rules |
Get the WAGE workflow rules |
wage_get_version |
Get the WAGE version |
When a task requires specialized knowledge:
-
List available agents:
wage_list_agents() -
Activate specialized agent:
wage_set_agent({name: "ruby"}) -
Read agent definition:
wage_read_agent({name: "ruby"}) -
Access agent-specific contexts:
wage_list_contexts({agent: "ruby"}) wage_read_context({file: "tool-rails.md", agent: "ruby"}) -
Save new knowledge:
wage_write_context({file: "action-learnings.md", content: "...", agent: "ruby"})
| Agent Status | Contexts Available | Scripts Available |
|---|---|---|
| Default (null) | contexts/shared/ |
scripts/shared/ |
Specialized (ruby) |
contexts/shared/ + contexts/ruby/ |
scripts/shared/ + scripts/ruby/ |
| Element | Language |
|---|---|
| Communication with user | Same language as the user |
Documents (contexts/) |
English (mandatory) |
| Scripts | English (names and comments) |
β οΈ Important: Always create/update documents incontexts/in English, even if the user communicates in Portuguese.
Always follow the workflow defined in workflow.md.
Summary of obligations:
- β
Check
.gitignoreβ Before any task, callwage_check_gitignore() - β
Check/create folders β Ensure structure exists via
wage_list_contexts() - β
Clean
temp/β Callwage_clean_temp()before starting a task - β Execute task β Use contexts and scripts to work
- β
Update
contexts/β Callwage_write_context()after completing with new knowledge - β
Clean
temp/β Callwage_clean_temp()when finishing
| File | Purpose |
|---|---|
tool-*.md |
External tool documentation (e.g., tool-putty.md) |
action-*.md |
Best practices for actions (e.g., action-createUnitTest.md) |
concept-*.md |
Concepts and business rules (e.g., concept-inss.md) |
*.js or *.py |
Utility scripts |
MIT β Use freely in your projects.