Skip to content
Merged
145 changes: 42 additions & 103 deletions .mcp.json
Original file line number Diff line number Diff line change
@@ -1,113 +1,52 @@
{
"mcpServers": {
"nlt-build": {
"type": "stdio",
"command": "/home/wtthornton/.local/bin/tapps-mcp",
"args": [
"serve",
"--profile",
"nlt-build"
],
"env": {
"TAPPS_MCP_PROJECT_ROOT": ".",
"TAPPS_MCP_MEMORY_BRAIN_HTTP_URL": "http://localhost:8080",
"TAPPS_MCP_MEMORY_BRAIN_AUTH_TOKEN": "${TAPPS_BRAIN_AUTH_TOKEN}",
"TAPPS_MCP_MEMORY_BRAIN_PROJECT_ID": "tapps-brain",
"TAPPS_MCP_CONTEXT7_API_KEY": "${TAPPS_MCP_CONTEXT7_API_KEY}",
"TAPPS_BRAIN_PROFILE": "full",
"TAPPS_METRICS_STORAGE": "dual"
},
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
"type": "http",
"url": "http://127.0.0.1:8760/mcp",
"headers": {
"X-Tapps-Project-Root": "/home/wtthornton/code/tapps-brain"
},
"nlt-memory": {
"type": "stdio",
"command": "/home/wtthornton/.local/bin/tapps-mcp",
"args": [
"serve",
"--profile",
"nlt-memory"
],
"env": {
"TAPPS_MCP_PROJECT_ROOT": ".",
"TAPPS_MCP_MEMORY_BRAIN_HTTP_URL": "http://localhost:8080",
"TAPPS_MCP_MEMORY_BRAIN_AUTH_TOKEN": "${TAPPS_BRAIN_AUTH_TOKEN}",
"TAPPS_BRAIN_PROFILE": "full",
"TAPPS_METRICS_STORAGE": "dual",
"TAPPS_MCP_CONTEXT7_API_KEY": "${TAPPS_MCP_CONTEXT7_API_KEY}",
"TAPPS_MCP_MEMORY_BRAIN_PROJECT_ID": "tapps-brain"
},
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
},
"nlt-memory": {
"type": "http",
"url": "http://127.0.0.1:8761/mcp",
"headers": {
"X-Tapps-Project-Root": "/home/wtthornton/code/tapps-brain"
},
"nlt-setup": {
"type": "stdio",
"command": "/home/wtthornton/.local/bin/tapps-mcp",
"args": [
"serve",
"--profile",
"nlt-setup"
],
"env": {
"TAPPS_MCP_PROJECT_ROOT": ".",
"TAPPS_MCP_MEMORY_BRAIN_HTTP_URL": "http://localhost:8080",
"TAPPS_MCP_MEMORY_BRAIN_AUTH_TOKEN": "${TAPPS_BRAIN_AUTH_TOKEN}",
"TAPPS_BRAIN_PROFILE": "full",
"TAPPS_METRICS_STORAGE": "dual",
"TAPPS_MCP_CONTEXT7_API_KEY": "${TAPPS_MCP_CONTEXT7_API_KEY}",
"TAPPS_MCP_MEMORY_BRAIN_PROJECT_ID": "tapps-brain"
},
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
},
"nlt-setup": {
"type": "http",
"url": "http://127.0.0.1:8762/mcp",
"headers": {
"X-Tapps-Project-Root": "/home/wtthornton/code/tapps-brain"
},
"nlt-linear-issues": {
"type": "stdio",
"command": "/home/wtthornton/.local/bin/tapps-platform",
"args": [
"serve",
"--profile",
"nlt-linear-issues"
],
"env": {
"TAPPS_MCP_PROJECT_ROOT": ".",
"TAPPS_MCP_MEMORY_BRAIN_HTTP_URL": "http://localhost:8080",
"TAPPS_MCP_MEMORY_BRAIN_AUTH_TOKEN": "${TAPPS_BRAIN_AUTH_TOKEN}",
"TAPPS_BRAIN_PROFILE": "full",
"TAPPS_METRICS_STORAGE": "dual",
"TAPPS_MCP_CONTEXT7_API_KEY": "${TAPPS_MCP_CONTEXT7_API_KEY}",
"TAPPS_MCP_MEMORY_BRAIN_PROJECT_ID": "tapps-brain"
},
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
},
"nlt-linear-issues": {
"type": "http",
"url": "http://127.0.0.1:8763/mcp",
"headers": {
"X-Tapps-Project-Root": "/home/wtthornton/code/tapps-brain"
},
"nlt-project-docs": {
"type": "stdio",
"command": "/home/wtthornton/.local/bin/docsmcp",
"args": [
"serve",
"--profile",
"nlt-project-docs"
],
"env": {
"DOCS_MCP_PROJECT_ROOT": ".",
"TAPPS_BRAIN_PROFILE": "agent_brain"
},
"instructions": "Documentation MCP: epic/story/prompt generators, artifact validation, and planning helpers for Markdown docs in this repo."
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
},
"nlt-project-docs": {
"type": "http",
"url": "http://127.0.0.1:8764/mcp",
"headers": {
"X-Tapps-Project-Root": "/home/wtthornton/code/tapps-brain"
},
"nlt-release-ship": {
"type": "stdio",
"command": "/home/wtthornton/.local/bin/tapps-platform",
"args": [
"serve",
"--profile",
"nlt-release-ship"
],
"env": {
"TAPPS_MCP_PROJECT_ROOT": ".",
"TAPPS_MCP_MEMORY_BRAIN_HTTP_URL": "http://localhost:8080",
"TAPPS_MCP_MEMORY_BRAIN_AUTH_TOKEN": "${TAPPS_BRAIN_AUTH_TOKEN}",
"TAPPS_BRAIN_PROFILE": "full",
"TAPPS_METRICS_STORAGE": "dual",
"TAPPS_MCP_CONTEXT7_API_KEY": "${TAPPS_MCP_CONTEXT7_API_KEY}",
"TAPPS_MCP_MEMORY_BRAIN_PROJECT_ID": "tapps-brain"
},
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
}
"instructions": "Documentation MCP: epic/story/prompt generators, artifact validation, and planning helpers for Markdown docs in this repo."
},
"nlt-release-ship": {
"type": "http",
"url": "http://127.0.0.1:8765/mcp",
"headers": {
"X-Tapps-Project-Root": "/home/wtthornton/code/tapps-brain"
},
"instructions": "Code quality scoring (0-100 across 7 categories), security scanning (Bandit + secret detection), quality gates (pass/fail against configurable presets), documentation lookup, domain expert consultation, and project profiling for Python projects."
}
}
}
4 changes: 1 addition & 3 deletions src/tapps_brain/diagnostics.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,7 @@ def _freshness(store: MemoryStore) -> DimensionScore:
tier_age_days_sum[tier_s] = tier_age_days_sum.get(tier_s, 0.0) + age_days
avg = sum(scores) / len(scores)
n = len(entries)
tier_avg_age = {
k: round(tier_age_days_sum[k] / tier_counts[k], 2) for k in sorted(tier_counts)
}
tier_avg_age = {k: round(tier_age_days_sum[k] / tier_counts[k], 2) for k in sorted(tier_counts)}
context_n = tier_counts.get(MemoryTier.context.value, 0)
return DimensionScore(
name="freshness",
Expand Down
Loading