Configuration
SpecForge is configured through environment variables. All configuration is optional — sensible defaults are provided.
Environment Variables
| Variable | Description | Default |
|---|---|---|
SDD_DATA_DIR | Path where all spec data is stored (projects, templates, knowledge) | ./data |
SDD_HOURLY_RATE | Developer hourly rate in USD, used for cost estimation | 50 |
SDD_LOCALE | Default language for generated content (en, es, pt) | en |
Claude Desktop
Pass environment variables in the env section of your MCP server config:
json
// claude_desktop_config.json
{
"mcpServers": {
"specforge": {
"command": "npx",
"args": ["-y", "specforge-mcp@latest"],
"env": {
"SDD_DATA_DIR": "/Users/me/specforge-data",
"SDD_HOURLY_RATE": "120",
"SDD_LOCALE": "en"
}
}
}
}Shared data directory
If you work across multiple projects, point SDD_DATA_DIR to a stable directory outside your project folders. SpecForge stores per-project data under {SDD_DATA_DIR}/projects/{hash}/ — no collisions.
Claude Code
Set environment variables before adding the MCP server, or export them in your shell profile:
bash
# Option 1: inline when adding
SDD_HOURLY_RATE=120 claude mcp add specforge npx -y specforge-mcp@latest
# Option 2: in your shell profile
export SDD_HOURLY_RATE=120
export SDD_LOCALE=enLocale
SpecForge supports three locales for generated spec content and messages:
| Code | Language |
|---|---|
en | English |
es | Spanish |
pt | Portuguese |
You can also change locale at runtime without restarting:
Prompt: "Set locale to es"This calls set_locale and immediately switches all subsequent generated content to Spanish.
Data Storage
All data is stored as JSON files locally — no cloud, no accounts, no telemetry.
{SDD_DATA_DIR}/
├── projects/
│ └── {hash}/ # One directory per project (hashed from project path)
│ ├── specs/ # All specs for this project
│ ├── metrics/ # Estimation and quality metrics
│ ├── patterns/ # Learned patterns
│ └── knowledge/ # Contributed context and documentation
└── global/
├── templates/ # Spec and PLAN.md templates
└── pricing/ # Cost estimation dataGitignore
Add your SDD_DATA_DIR to .gitignore if it's inside your project. The default ./data directory is typically project-specific and should not be committed.
Hourly Rate for Estimation
SDD_HOURLY_RATE is used by estimate to convert story point estimates into dollar cost ranges. Set it to your team's average blended rate for the most accurate estimates.
# Individual developer
SDD_HOURLY_RATE=80
# Agency rate
SDD_HOURLY_RATE=150
# Team blended rate
SDD_HOURLY_RATE=95