feat(client): add privacy-safe request history#59
Open
Ritwij Aryan Parmar (RitwijParmar) wants to merge 1 commit into
Open
feat(client): add privacy-safe request history#59Ritwij Aryan Parmar (RitwijParmar) wants to merge 1 commit into
Ritwij Aryan Parmar (RitwijParmar) wants to merge 1 commit into
Conversation
Signed-off-by: Ritwij Aryan Parmar <ritwij.aryan.parmar@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a bounded request history on
MCPClientso client users can debug slow, failed, or repeated MCP calls without retaining request payloads, tool arguments, resource URIs, prompt arguments, or result bodies.The history records method, result type, session id, duration, success or failure, and error class/message. Convenience methods still call the underlying
ClientSessionhelpers, with metadata recorded around those calls.Why
When MCP apps run multiple tools or remote sessions, the current client surface makes it hard to answer simple questions like which request failed, how long it took, and whether the same operation repeated. This gives that debugging surface while keeping sensitive tool arguments out of memory snapshots and logs.
Testing
uv run pytest tests/test_client.py --no-covuv run ruff check --select I,RUF022 src/dedalus_mcp/client/__init__.py src/dedalus_mcp/client/core.py src/dedalus_mcp/client/diagnostics.pyuv run ruff check --select D202,EM,TRY src/dedalus_mcp/client/diagnostics.pyuv run mypy src/dedalus_mcp/clientcould not run locally becausemypyis not installed in the environment.AI assistance was used to prepare this PR. I reviewed the code and tests before submitting.