Skip to content

L8: MCP client robustness (timeouts, names, terminal escapes) - #80

Merged
jkyberneees merged 1 commit into
mainfrom
fix/l8-mcp-robustness
Jul 19, 2026
Merged

L8: MCP client robustness (timeouts, names, terminal escapes)#80
jkyberneees merged 1 commit into
mainfrom
fix/l8-mcp-robustness

Conversation

@jkyberneees

Copy link
Copy Markdown
Contributor

Closes L8.

  • Enforces a default RPC timeout when the caller context has no deadline.
  • Validates MCP server names and rejects tool names containing __.
  • Sanitises ANSI/control characters from tool descriptions in the interactive approval prompt.

/cc @BackendStack21/odek

- internal/mcpclient/client.go: default timeout for caller-deadline-free calls;
  validate server names; reject tool names containing '__'; DefaultTimeout var
  for test overrides.
- internal/mcpclient/client_test.go: tests for invalid server names, double
  underscore tool names, default timeout.
- internal/mcpclient/testdata/main.go: FAKE_DELAY env for timeout tests.
- cmd/odek/mcp_approval.go: sanitize tool descriptions in approval prompt.
- cmd/odek/mcp_approval_test.go: sanitize tests.
- docs/SECURITY.md + AGENTS.md: document L8 mitigations.
@jkyberneees
jkyberneees merged commit e134f01 into main Jul 19, 2026
5 of 7 checks passed
@jkyberneees
jkyberneees deleted the fix/l8-mcp-robustness branch July 19, 2026 08:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant