Skip to content

fix(mcp): support ndjson stdio clients#14

Merged
channprj merged 6 commits into
channprj:mainfrom
MadKangYu:codex/mcp-stdio-compat-errors
Jun 5, 2026
Merged

fix(mcp): support ndjson stdio clients#14
channprj merged 6 commits into
channprj:mainfrom
MadKangYu:codex/mcp-stdio-compat-errors

Conversation

@MadKangYu

Copy link
Copy Markdown
Contributor

Summary

  • support both MCP Content-Length framing and newline-delimited JSON-RPC in kmsg mcp-server
  • echo responses using the same stdio transport shape as the current request
  • make startup readiness less brittle for slow KakaoTalk Accessibility state
  • surface KakaoTalk search focus failures as an actionable MCP error code
  • document the stdio compatibility behavior for OpenClaw-style integrations

Testing

  • python3 -m unittest discover -s tests -v
  • swift build

Notes

  • Live KakaoTalk send/read via Accessibility was not exercised in this pass.

MadKangYu and others added 6 commits May 26, 2026 04:12
Allow kmsg mcp-server to speak either MCP Content-Length framing or newline-delimited JSON-RPC, returning responses with the same transport shape used by the request.

Also make startup readiness less brittle for slow KakaoTalk AX state and surface FOCUS_FAIL as an actionable MCP error code.

Tested: python3 -m unittest discover -s tests -v

Tested: swift build

Not-tested: live KakaoTalk send/read via Accessibility
Add a visible MIT license badge and a License section that points readers to the repository LICENSE file.

Tested: git diff --check
Add an animation-style cyberpunk visual to the README MCP section so the PR shows the kmsg philosophy at a glance: human intent, chat, protocol bridge, fail-closed safety, and automation.

Constraint: Use the generated local image artifact rather than the OpenAI Images API path because the API-key lane hit billing limits and the OAuth API token lacked image request scope.

Rejected: Use the second-newest candidate image | it includes visible English text and is less suitable for a clean README asset.

Confidence: high

Scope-risk: narrow

Tested: git diff --check

Tested: file assets/kmsg-mcp-cyberpunk-hero.png

Tested: sips -g pixelWidth -g pixelHeight assets/kmsg-mcp-cyberpunk-hero.png

Not-tested: GitHub README rendering after push
Refine the Rust comparison to separate narrow stdio/JSON and cold-start costs from the end-to-end latency dominated by macOS AX and KakaoTalk UI response time.

Constraint: Keep the answer aligned with the current Swift MCP implementation and avoid overstating unmeasured Rust gains.

Confidence: high

Scope-risk: narrow

Tested: python3 -m unittest discover -s tests -v

Tested: swift build

Tested: git diff --check

Tested: MCP NDJSON and Content-Length smoke checks against .build/debug/kmsg
Removed image tag related to MCP integration from README.

@channprj channprj left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed vibe image from your pr directly.

@channprj channprj merged commit 9e9f115 into channprj:main Jun 5, 2026
1 check passed
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.

2 participants