Complexity Cost Calculator MCP
An MCP server that allows AI agents to calculate the cost of software complexity, including sync tax, total cost of complexity, and failure risk, while projecting how AI adoption impacts engineering costs over time.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.complexity-cost-calculator.beamercloud.com/mcpWhat its tools do
2 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Calculate the cost of complexity for a typical software change
- Analyze how AI adoption levels change engineering costs over time
- Estimate coordination hours and coupling impacts on development
- Compare costs with and without AI assistance
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- complexity-cost-calculator-mcp 0.2.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 2 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
calculate
Calculate what software complexity costs an engineering organization per feature, per quarter and per year, how AI adoption changes that cost over the coming quarters, and (Pro) which levers lower it.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"vacuum_effort",
"connascence_degree",
"coordination_hours",
"engineers",
"teams"
],
"properties": {
"teams": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Teams in the organization (not more than engineers)",
"exclusiveMinimum": 0
},
"levers": {
"type": "object",
"properties": {
"safety_net": {
"type": "boolean"
},
"decision_rights": {
"type": "boolean"
},
"human_interfaces": {
"type": "boolean"
},
"explain_before_merge": {
"type": "boolean"
}
},
"description": "Pro. Levers that put people back in the loop, or automate, where AI makes a cost worse: human_interfaces (people design and review every change that crosses a module boundary), explain_before_merge, safety_net (contract tests, monitoring, canary releases with automatic rollback) and decision_rights (decisions move to the teams that own the code). Each has its own cost. On Pro the response also has a plan with the cheapest mix of levers for every AI level."
},
"engineers": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Engineers in the organization",
"exclusiveMinimum": 0
},
"ai_adoption": {
"type": "object",
"required": [
"level"
],
"properties": {
"level": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
],
"description": "AI adoption level: 0 none, 1 coding help, 2 AI does all the coding, 3 AI does coding, checks, reviews and monitoring"
},
"quarters_at_level": {
"type": "number",
"minimum": 0,
"description": "Quarters the teams have been at this level"
}
},
"description": "AI adoption for every team. Leave it out for no AI."
},
"hourly_rate": {
"type": "number",
"description": "Cost of one engineering hour; adds dollar amounts to the results",
"exclusiveMinimum": 0
},
"team_adoption": {
"type": "array",
"items": {
"type": "object",
"required": [
"teams",
"level",
"quarters_at_level"
],
"properties": {
"level": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
],
"description": "AI adoption level: 0 none, 1 coding help, 2 AI does all the coding, 3 AI does coding, checks, reviews and monitoring"
},
"teams": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"quarters_at_level": {
"type": "number",
"minimum": 0
}
}
},
"minItems": 1,
"description": "Pro. Different AI levels per group of teams; the team counts must add up to teams. Use instead of ai_adoption."
},
"vacuum_effort": {
"type": "number",
"description": "Hours a typical change would take in a perfectly modular system",
"exclusiveMinimum": 0
},
"ai_assumptions": {
"type": "object",
"properties": {
"levels": {
"type": "object",
"properties": {
"1": {
"type": "object",
"properties": {
"ai_speedup": {
"type": "number",
"minimum": 0,
"description": "Share of own work time AI saves",
"exclusiveMaximum": 1
},
"review_share": {
"type": "number",
"minimum": 0,
"description": "Review time added, as a share of own work"
},
"event_response": {
"type": "number",
"minimum": 0,
"description": "Share of incident cost AI's reaction to events saves",
"exclusiveMaximum": 1
},
"automation_saving": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share of maintenance and infrastructure work AI automates"
},
"understanding_kept": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share of code understanding a team keeps for code AI writes"
}
}
},
"2": {
"type": "object",
"properties": {
"ai_speedup": {
"type": "number",
"minimum": 0,
"description": "Share of own work time AI saves",
"exclusiveMaximum": 1
},
"review_share": {
"type": "number",
"minimum": 0,
"description": "Review time added, as a share of own work"
},
"event_response": {
"type": "number",
"minimum": 0,
"description": "Share of incident cost AI's reaction to events saves",
"exclusiveMaximum": 1
},
"automation_saving": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share of maintenance and infrastructure work AI automates"
},
"understanding_kept": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share of code understanding a team keeps for code AI writes"
}
}
},
"3": {
"type": "object",
"properties": {
"ai_speedup": {
"type": "number",
"minimum": 0,
"description": "Share of own work time AI saves",
"exclusiveMaximum": 1
},
"review_share": {
"type": "number",
"minimum": 0,
"description": "Review time added, as a share of own work"
},
"event_response": {
"type": "number",
"minimum": 0,
"description": "Share of incident cost AI's reaction to events saves",
"exclusiveMaximum": 1
},
"automation_saving": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share of maintenance and infrastructure work AI automates"
},
"understanding_kept": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share of code understanding a team keeps for code AI writes"
}
}
}
}
},
"decision_penalty": {
"type": "number",
"minimum": 0
},
"incident_penalty": {
"type": "number",
"minimum": 0
},
"coordination_penalty": {
"type": "number",
"minimum": 0
},
"code_turnover_per_quarter": {
"type": "number",
"maximum": 1,
"exclusiveMinimum": 0
}
},
"description": "Pro. Your own AI values instead of the starting values"
},
"decision_people": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "People outside the teams who take part in a typical cross-team decision (default 2)"
},
"teams_per_change": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Teams a typical change crosses (not more than teams)",
"exclusiveMinimum": 0
},
"features_per_year": {
"type": "number",
"description": "Features shipped per year (default 20)",
"exclusiveMinimum": 0
},
"lever_assumptions": {
"type": "object",
"properties": {
"safety_net": {
"type": "object",
"properties": {
"cost_cut": {
"type": "number",
"minimum": 0,
"exclusiveMaximum": 1
},
"test_share": {
"type": "number",
"minimum": 0
},
"likelihood_cut": {
"type": "number",
"minimum": 0,
"exclusiveMaximum": 1
},
"build_hours_per_team": {
"type": "number",
"minimum": 0
},
"upkeep_hours_per_team_per_quarter": {
"type": "number",
"minimum": 0
}
}
},
"decision_rights": {
"type": "object",
"properties": {
"people_removed": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"record_hours_per_change": {
"type": "number",
"minimum": 0
}
}
},
"human_interfaces": {
"type": "object",
"properties": {
"review_share": {
"type": "number",
"minimum": 0
},
"incident_share": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"understanding_kept": {
"type": "number",
"maximum": 1,
"minimum": 0
}
}
},
"explain_before_merge": {
"type": "object",
"properties": {
"speedup_given_up": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"understanding_recovered": {
"type": "number",
"maximum": 1,
"minimum": 0
}
}
}
},
"description": "Pro. Your own values for the levers instead of the starting values"
},
"connascence_degree": {
"type": "number",
"minimum": 0,
"description": "How many other modules usually change along with it (a count)"
},
"coordination_hours": {
"type": "number",
"minimum": 0,
"description": "Hours of meetings, threads and reviews the change causes"
},
"calibration_changes": {
"type": "array",
"items": {
"type": "object",
"required": [
"vacuum_effort",
"connascence_degree",
"coordination_hours",
"actual_hours"
],
"properties": {
"actual_hours": {
"type": "number",
"minimum": 0
},
"vacuum_effort": {
"type": "number",
"exclusiveMinimum": 0
},
"connascence_degree": {
"type": "number",
"minimum": 0
},
"coordination_hours": {
"type": "number",
"minimum": 0
}
}
},
"minItems": 1,
"description": "Pro. Past changes with their actual hours, to fit the interdependence factor. Use instead of interdependence_factor."
},
"incident_cost_hours": {
"type": "number",
"minimum": 0,
"description": "Hours an incident costs; give it together with incident_likelihood"
},
"incident_likelihood": {
"type": "number",
"minimum": 0,
"description": "Chance that a change causes an incident; give it together with incident_cost_hours",
"exclusiveMaximum": 1
},
"projection_quarters": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Quarters to project (default 12)"
},
"interdependence_factor": {
"type": "number",
"minimum": 0,
"description": "How strongly coupled modules drag work along (default 0.5)"
},
"maintenance_hours_per_quarter": {
"type": "number",
"minimum": 0,
"description": "Maintenance hours per quarter"
},
"infrastructure_hours_per_quarter": {
"type": "number",
"minimum": 0,
"description": "Infrastructure hours per quarter"
},
"connascence_degree_change_per_quarter": {
"type": "number",
"description": "Pro. Planned change in coupling per quarter (negative when you decouple)"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"model_version",
"sync_tax_multiplier",
"per_feature",
"per_quarter",
"per_year",
"ai",
"levers",
"horizon",
"plan",
"projection",
"assumptions"
],
"properties": {
"ai": {
"type": "object",
"properties": {},
"description": "Team ownership, lost understanding, and which costs AI made cheaper or more expensive than no AI",
"additionalProperties": {}
},
"plan": {
"anyOf": [
{
"type": "object",
"properties": {},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "Pro: the cheapest lever mix for the chosen adoption and for every AI level; null on Free"
},
"levers": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"notice": {
"type": "object",
"required": [
"ignored_paid_fields",
"message",
"upgrade"
],
"properties": {
"message": {
"type": "string"
},
"upgrade": {
"type": "string"
},
"ignored_paid_fields": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Present when Pro fields were sent on the Free plan and ignored",
"additionalProperties": {}
},
"horizon": {
"type": "object",
"properties": {},
"description": "Hours (and dollars) over the projection, with and without AI",
"additionalProperties": {}
},
"per_year": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"projection": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"description": "One entry per quarter with expected, low, high and no-AI values"
},
"assumptions": {
"type": "object",
"properties": {},
"description": "Starting values used, not fitted",
"additionalProperties": {}
},
"calibration": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"per_feature": {
"type": "object",
"required": [
"total_hours",
"all_in_hours"
],
"properties": {
"all_in_usd": {
"type": "number"
},
"total_hours": {
"type": "number"
},
"all_in_hours": {
"type": "number"
}
},
"additionalProperties": {}
},
"per_quarter": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"model_version": {
"type": "string"
},
"sync_tax_multiplier": {
"type": "number"
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}health
Health check for the Complexity Cost Calculator API. No API key required.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"ok": {
"type": "boolean"
},
"message": {
"type": "string"
},
"service": {
"type": "string"
},
"version": {
"type": "string"
},
"database": {
"type": "string"
},
"environment": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 297 ms
- 95th percentile latency
- 297 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 297 ms · metadata changed · 2 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http complexity-cost-calculator-mcp https://mcp.complexity-cost-calculator.beamercloud.com/mcpCodex
codex mcp add complexity-cost-calculator-mcp --url https://mcp.complexity-cost-calculator.beamercloud.com/mcpCursor
{
"mcpServers": {
"complexity-cost-calculator-mcp": {
"url": "https://mcp.complexity-cost-calculator.beamercloud.com/mcp"
}
}
}Cline
{
"mcpServers": {
"complexity-cost-calculator-mcp": {
"type": "streamableHttp",
"url": "https://mcp.complexity-cost-calculator.beamercloud.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"complexity-cost-calculator-mcp": {
"type": "http",
"url": "https://mcp.complexity-cost-calculator.beamercloud.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http complexity-cost-calculator-mcp https://mcp.complexity-cost-calculator.beamercloud.com/mcpClaude Desktop
https://mcp.complexity-cost-calculator.beamercloud.com/mcpWindsurf
{
"mcpServers": {
"complexity-cost-calculator-mcp": {
"serverUrl": "https://mcp.complexity-cost-calculator.beamercloud.com/mcp"
}
}
}Let your agent find its tools
Find servers like Complexity Cost Calculator MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.