Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/tech-debt-mcp/issues.md or /mcp/tech-debt-mcp/issues.json, or Pod over MCP.

Reported issues for tech-debt-mcp

Pod holds 20 of 109 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to tech-debt-mcp.

Most discussed

chore: end-to-end finishing check for Claude Code plugin + MCPB bundle

Summary

TEC-35 (#175) landed the .claude-plugin/ manifest. TEC-42 (#182) landed the MCPB manifest + npm run mcpb:pack tooling. Both ship the scaffolding but neither has been verified end-to-end on a clean machine before submission to the official directories (TEC-39 — claude-plugins-official; TEC-45 — Anthropic MCP directory).

This issue tracks the pre-submission QA pass.

Update 2026-05-23: Re-read TEC-39 and TEC-45 against this checklist. Neither submission ticket actually

Read the thread · 2026-05-22 · closed · outside contributor · 5 comments

Release: v2.1.0

Release tracker for v2.1.0 — the Distribution release (Claude Code plugin + MCPB bundle).

Branch: release/v2.1.0 Cut from: develop @ 9051f24 Date cut: 2026-05-24

Gates before tagging

After tag + publish

Read the thread · 2026-05-23 · closed · 3 comments

feat: add SwiftUI-specific tech debt analysis checks

Description

Extend TechDebt MCP to include SwiftUI-specific technical debt checks. Current analysis misses critical SwiftUI patterns, state management issues, and performance problems.

SwiftUI Analysis Gaps

High Priority

  1. State Management Anti-Patterns

    • Excessive @State variables (should use ViewModel)
    • @ObservedObject vs @StateObject misuse
    • Unnecessary binding unwrapping
    • Missing environment value validation
  2. Memory Management & Lifecycle

    • Memory l

Read the thread · 2026-02-07 · closed · 3 comments

Sanity run: v2.1.0

Smoke pass for v2.1.0 distribution artifacts. Pre-publish — testing local build of release/v2.1.0 @ a1ba57f (with TEC-73/#240 and TEC-242 fixes).

Environment: macOS 14.4 (Darwin 25.3.0), Node 20.17.0, MCP Inspector v0.15.0 driven via Playwright MCP, Claude Desktop with MCPB bundle, Claude Code with plugin install (mcpServer temporarily pointing at local dist for pre-publish verification, will revert before tag), local artifacts (not yet tagged/published)

Distribution artifacts

Read the thread · 2026-05-23 · closed · 2 comments

Create .github/copilot-instructions.md for AI agents

Description

Create AI agent guidelines for contributing to this project in the GitHub Copilot native location.

Details

Content to Include

Acceptance Criteria

Read the thread · 2026-02-07 · closed · 2 comments

Plugin: nested layout + whole-repo install surface — restructure into ./plugin subdirectory

Repro (original — #242)

Found during v2.1.0 manual sanity pass via Claude Code slash command verification (/techdebt-scan returned "Unknown command").

/plugin marketplace add /Users/.../TechDebtMCP
/plugin install tech-debt-mcp@techdebtmcp
# Restart CC session
/techdebt-scan   # -> Unknown command: /techdebt-scan

The MCP server registers and tools are callable. Only the slash commands are missing.

Root cause A — nested components (original #242)

Claude Code's plugin load

Read the thread · 2026-05-24 · closed · 1 comment

eval-usage regex over-matches: flags Ruby instance_eval/class_eval/module_eval as critical security

Repro

Scanned Sinatra at SHA HEAD of develop branch. All 22 critical findings were eval-usage, every one matching Ruby's metaprogramming methods — not the standalone eval() builtin.

Example matches:

Why it's wrong

instance_eval, class_eval, module_eval, and Module#define_method are co

Read the thread · 2026-05-23 · closed · outside contributor · 1 comment

Review console statements in index.ts and setup.ts

Context

Sub-issue of #82.

Problem

3 console statements flagged:

Considerations

MCP servers communicate over stdio, so console.log (stdout) can interfere with the protocol. console.error (stderr) is the MCP convention for logging.

Fix

Read the thread · 2026-03-20 · closed · 1 comment

Most recent

Verify GitHub MCP Registry + community propagation; submit the rest

Verify GitHub MCP Registry + community propagation; submit the rest

Because the official MCP Registry feeds downstream consumers (Smithery, PulseMCP, Docker Hub, Anthropic, GitHub), most distribution should follow automatically once #PUBLISH lands. This ticket verifies that propagation and handles the registries that need separate/manual submission.

Scope

Read the thread · 2026-06-20 · open · outside contributor · 0 comments

Automate publishing to the official MCP Registry

Automate publishing to the official MCP Registry

The server is not live on registry.modelcontextprotocol.io (a search for tech-debt-mcp returns 0 results). A server.json exists but nothing publishes it — publish.yml only does npm + GitHub Release + MCPB artifact. This ticket adds automated registry publishing and performs the initial publish.

Approach

Use the official Publish MCP Server GitHub Action (or the mcp-publisher CLI directly), authenticating with **GitHub OI

Read the thread · 2026-06-20 · open · outside contributor · 0 comments

Fix server.json version drift + wire into assertVersionsMatch()

Fix server.json version drift + wire into assertVersionsMatch()

server.json (the official MCP Registry manifest at repo root) is stuck at 2.0.2 while package.json is 2.1.0. It carries the version in two fields (version and packages[0].version) and is the only version-pinned file not machine-enforced — documented as a known bug in .claude/rules/version-bump.md.

Scope

Read the thread · 2026-06-20 · closed · outside contributor · 0 comments

Tracker: MCP registry distribution & dependency-vulnerability hygiene

Tracker: MCP registry distribution & dependency-vulnerability hygiene

Parent tracker for two related initiatives planned together:

  1. Dependency vulnerability hygiene — establish a documented, reconciled triage policy for the dev-only CVE noise.
  2. MCP registry distribution — get tech-debt-mcp actually live on the official MCP Registry (it currently is not), then propagate to GitHub's catalog and community registries.

Context snapshot (as of planning)

Read the thread · 2026-06-20 · open · outside contributor · 0 comments

MCP analyze_project returns 0 issues when languages/categories are empty arrays

Repro

Found during v2.1.0 manual sanity pass via MCP Inspector against release/v2.1.0 @ 9051f24.

```js import { AnalysisEngine } from './dist/core/analysisEngine.js'; const e = new AnalysisEngine(); const repo = process.cwd();

await e.analyzeProject({ path: repo }); // → totalIssues: 166, filesAnalyzed: 62

await e.analyzeProject({ path: repo, languages: undefined, categories: undefined }); // → totalIssues: 166, filesAnalyzed: 62

await e.analyzeProject({ path: repo, languages: [], c

Read the thread · 2026-05-24 · closed · 0 comments

Regression run: v2.1.0

Manual regression pass for v2.1.0 (minor release).

Fixture project: self-scan of TechDebtMCP repo + ad-hoc temp projects for config behaviors + MCP Inspector lifecycle for custom-rules state + Claude Desktop prompt-driven session + Claude Code plugin slash-command session. Release milestone: release/v2.1.0 @ a1ba57f (with TEC-73 / #240 and TEC-242 / #243 fixes)

Analyzer coverage (14 languages — each must produce expected issues on the fixture)

All 14 covered by automated test

Read the thread · 2026-05-23 · closed · 0 comments

Dogfood follow-ups: TECH_DEBT_SCAN drift + .techdebtrc.json ignore gaps + prefer-nullish-coalescing noise

Filed from the TEC-37 dogfood cycle (PR #235). Running AnalysisEngine.analyzeProject() against this repo surfaced three findings worth fixing before the next release. Bundled here because they share a single end-state (a refreshed TECH_DEBT_SCAN.md).

1. TECH_DEBT_SCAN.md is significantly stale

Read the thread · 2026-05-23 · open · outside contributor · 0 comments

Java analyzer matches patterns inside Javadoc {@code} /
 blocks (system-out, likely others)

Repro

Showcase scan of google/gson @ `abfef5e8455483b878a8dea14dd42fa55832a56c` surfaced `system-out` findings inside Javadoc `

{@code ... }
` documentation blocks — not production code.

Example — `gson/src/main/java/com/google/gson/GsonBuilder.java:300`:

```java *

Read the thread · 2026-05-23 · open · outside contributor · 0 comments

file-length issues emit :undefined line number in formatted output

Repro

Both Rust (ripgrep) and Python (FastAPI) scans surface entries like:

``` [file-length] File is too long tests/regression.rs:undefined File has 1720 lines (max recommended: 500) ```

Cause

The `file-length` rule applies to the whole file, not a specific line, so the issue's `line` field is left as `undefined`. When interpolated into the formatted output (`${file}:${line}`), it renders as the literal string `undefined`.

Suggested fix

Either:

Read the thread · 2026-05-23 · open · outside contributor · 0 comments

Severity should be context-aware: downgrade test-only rules (unwrap, panic, nesting) in tests/

Repro

Two scans of well-respected codebases, dominated by test-file noise:

ripgrep @ 4519153e5e461527f4bca45b042fff45c4ec6fb9 (Rust):

FastAPI @ 3675137523dc167981aa3a3c44599b4f3079ccd8 (Python):

Read the thread · 2026-05-23 · open · outside contributor · 0 comments

exec-usage regex over-matches: flags ORM/method calls like session.exec() as critical security

Repro

Scanned FastAPI at SHA 3675137523dc167981aa3a3c44599b4f3079ccd8. All 4 critical-severity findings were exec-usage, every one a false positive on session.exec(...) (SQLModel ORM query method).

Example match — docs_src/sql_databases/tutorial002_py310.py:68:

heroes = session.exec(select(Hero).offset(offset).limit(limit)).all()

The rule is intended to catch Python's builtin exec(), but the regex matches exec( anywhere, including method calls. SQLModel, SQLAlchem

Read the thread · 2026-05-23 · open · outside contributor · 0 comments

bug: include glob in .techdebtrc.json is silently ignored by analyze_project

Summary

The include glob array in .techdebtrc.json is silently ignored by analyze_project. Files matching extensions outside the include patterns are still discovered and analyzed.

Severity

High — same shape as TEC-49 (customPatterns) and the severity-override bug: documented, user-facing config field is wholly non-functional. Stop-ship for TEC-39 / TEC-45.

Reproduction

Surfaced during TEC-48 end-to-end QA against tech-debt-mcp@2.0.2.

  1. Create `/tmp/test/.tech

Read the thread · 2026-05-23 · closed · outside contributor · 0 comments

The remaining reports are on the project's issue tracker.