Repository navigation
Conversation
Every docs MCP connection the package creates now uses https://www.voiceflow.com/docs/mcp?logging=off: both bundled MCP configs, the standalone setup commands, and the setup guide. The parameter name is provisional until the docs server ships the option; validate.py holds the one accepted URL and reports every file that differs. The docs `why` field now carries only the package, skill, and stage tag, with no task, symptom, or setup-state sentence. Measurement, data handling, eval cases, and the changelog describe the new behavior. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
voiceflow/voiceflow-website#617 defines what logging=off does. Each call writes one anonymous count line with caller `public`. The question, search terms, why, initiator, purpose, client name, and session are never logged. Vercel request logs still record the path with query and the IP address, but not the POST body. Connections without the flag log as before and still require why. The docs workflow now leaves an optional why out and sends only the package tag when a tool requires it. Data handling, measurement, provenance, setup guides, eval cases, and the changelog describe this behaviour and name #617 as the deploy dependency instead of calling the parameter provisional. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
z4o4z
force-pushed
the
evgeny/docs-no-logging
branch
from
November 13, 2026 20:24
6aafac1 to
fb0ffc2
Compare
z4o4z
changed the base branch from
evgeny/mcp-v3-names
to
evgeny/release-automation
November 13, 2026 20:25
Member
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
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.

Do not merge yet. This needs the docs server change in voiceflow/voiceflow-website#617. It is approved and waiting to be deployed. Merge order: #14, then this PR, then #13.
What changes
Every docs MCP connection this package creates now adds
logging=offto the URL. With that flag, the docs server keeps only an anonymous count of each call. A connection the user added by hand logs as before.voiceflow/.mcp.jsonandvoiceflow/mcp.json, usehttps://www.voiceflow.com/docs/mcp?logging=off.?is a wildcard in zsh.The skills now leave the docs
whyfield out when the tool marks it optional. When a tool still requires it, they send only the tagvf-agent-plugin/<version> skill=<skill> stage=<stage>, with no task, symptom, or setup state.initiator,purpose,intent: error, and the question are unchanged.What the docs server does with
logging=offThis is the behaviour that voiceflow/voiceflow-website#617 ships.
whyis optional and ignored. The server drops it before validation and never logs or refuses it. Tool descriptions, initialize instructions, and prompts in this mode no longer ask for it.logging: off, caller label (publicfor this package), error code, duration, and cold start.why,initiator,purpose, client name, session, result URLs, or confidence.?logging=offis visible there. They do not record the POST body, where the question travels. The in-memory rate limiter holds the IP for its window and never logs it.whyis still required, at 3 to 200 characters.Why
Anthropic's directory policy does not allow collecting "extraneous conversation data, even for logging purposes." The old
whysentence sent a summary of the user's task to the docs logs. Package connections now send no task summary, and the server does not log their questions.What this costs measurement
Package traffic now shows only as anonymous counts with caller
public. Any other client that sends the flag lands in the same counts, so the tag no longer separates package traffic.docs/measurement.mdsays this. We measure the package with controlled evaluations instead. The signal "questions after an account read" is gone.Changelog and version
The two changelog lines sit under
## Unreleased. This PR changes no version field. When it merges after #14, the release bot sets 1.1.0.This branch is rebased onto #14. It keeps main's account MCP pin,
?version=3.The URL lives in one place
scripts/validate.pyholds the one accepted docs URL inDOCS_MCP_URL. To change the URL, change that value. Validation then prints every file and line that still uses the old URL. A test covers this check.Verification
python3 scripts/validate.py: passed.python3 -m unittest discover -s tests -v: 136 tests ran, 135 passed, 1 skipped.python3 scripts/build.py: passed.evgeny/release-automation: no problems, no version edits, and two new lines under## Unreleased.claude plugin validate ./voiceflow(Claude Code 2.1.322) passed with a missing-icon warning that feat: add listing metadata for plugin and skill directories #13 tracks.python3 scripts/verify_hosts.pyinstalled the plugin in disposable Codex and Claude configs.whyis required, 3 to 200 characters. A tag-onlywhyreturned a normal answer.python3 scripts/scan_secrets.py, because Gitleaks is not installed locally; CI runs it. No live model evaluations were run.Stacked on #14.
🤖 Generated with Claude Code