Repository navigation
feat(mcp): Act as the task's user and always confirm write tools - #1
Merged
Merged
Conversation
MCP servers on this Nextcloud (for example an ExApp behind the AppAPI proxy) now get each call signed for the user of the task, with the same AppAPI headers the agent sends to Nextcloud itself, so they run the call as that user. Servers elsewhere get no headers, so the app secret never leaves this Nextcloud. A tool whose MCP annotations do not mark it read-only is confirmed on every call, even when it is on the always-allow list. Tools without annotations are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A published release builds the multi-arch image and pushes it to ghcr.io/<owner>/context_agent under the release tag without its "v", and reports the pushed digest in the run summary. A pull request that changes the workflow or the Dockerfile builds the image without pushing it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fork has no runner for Nextcloud's ubuntu-latest-low label, so the check queued forever. Fork only, like 342fbf3: not part of the upstream offer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.
Closes APS-Conecta/gestion-aio#92. MCP servers on this Nextcloud (the AppAPI proxy) get each call signed for the task's user with the AppAPI headers of docs/context-agent.md in APS-Conecta/nextcloud-mcp-connector; other servers get no headers. A tool annotated as not read-only is confirmed on every call, even when it is on the always-allow list. Tests:
tests/test_mcp_tools.py.Before (main), live FastMCP probe at
NEXTCLOUD_URL, always-allow*:alice: server sees '<no user>'; always-allowed ['mcp_create_note', 'mcp_whoami'](bob the same).After:
alice: server sees 'alice'; always-allowed ['mcp_whoami']andbob: server sees 'bob'; always-allowed ['mcp_whoami'].Commit 080e247 is the upstream offer for nextcloud/context_agent. Commit 342fbf3 is for the fork only: it pushes
ghcr.io/<owner>/context_agent:<tag without v>when a release is published, and builds without pushing on PRs that change the workflow or the Dockerfile.Local gate:
pytest -v testsgave 365 passed, andreuse lintis compliant. The integration test runs in CI only. The docs site needs no change.🤖 Generated with Claude Code