Skip to content

[NA] [DOCS] Publish the MCP read/write vocabulary and add a Security section - #8062

Open
aswynz wants to merge 1 commit into
aswynz/docs/drop-ask_ollie-from-mcpfrom
aswynz/docs/mcp-vocab-and-security
Open

[NA] [DOCS] Publish the MCP read/write vocabulary and add a Security section#8062
aswynz wants to merge 1 commit into
aswynz/docs/drop-ask_ollie-from-mcpfrom
aswynz/docs/mcp-vocab-and-security

Conversation

@aswynz

@aswynz aswynz commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Details

Two additions to prompt_engineering/mcp-server.mdx: a published vocabulary for the dispatcher tools, and a Security section. Docs only.

The read and write vocabulary. read, list, and write are universal dispatchers, but the page never listed their legal values — it pointed at the schema tool and the GitHub README. That leaves the real surface undiscoverable from the docs: a reader cannot tell whether the thing they want is possible, and an agent has to call schema and guess. Adds two tables, both sourced from the server registries (read_list/registry.py, writes/registry.py):

  • Entities (read / list) — 9 types, with which support read vs list and how each is scoped (project_id, test_suite_id, prompt_id).
  • Operations (write) — 12 operations, each with what it does.

Everything in the vocabulary works on Opik Cloud and self-hosted; only the separate run_experiment tool is Cloud-only.

Security. A trace holds the prompt and completion from a production app, so it contains text end users wrote. Reading one pipes that text into a context that also holds the write tool — the prompt-injection base case. Adds a Security section above the deployment notes stating that trace content is untrusted input, with three rules: prefer read-only work while investigating (the opik-diagnose and opik-explain skills never write), scope the credential to the narrowest workspace rather than an org-wide key, and verify any conclusion drawn from trace text against code or span data before a write.

Note for the reviewer: this is stacked on aswynz/docs/drop-ask_ollie-from-mcp and should be retargeted to main once that merges.

Change checklist

  • User facing
  • Documentation update

Issues

  • [NA] — no ticket resolved by this PR.
  • Related, not resolved here: server-side read-only mode (OPIK_8165, under OPIK_7624) is the enforcement this Security section currently describes by convention.

AI-WATERMARK

AI-WATERMARK: yes

  • Tools: Claude Code
  • Model(s): Claude Opus 5
  • Scope: prose and two reference tables in a single .mdx docs page; no code
  • Human verification: author reviewed the full diff; both tables were cross-checked against the server registries they are derived from

Testing

Docs-only change, so no unit or integration tests apply and none were run.

  • The two tables were cross-checked against read_list/registry.py (9 entities, and which support read vs list) and writes/registry.py (12 operations).
  • The Cloud-only claim was checked to be true of run_experiment alone; the read/write vocabulary is available on self-hosted.
  • Remaining verification is the Fern docs build on this PR rendering both tables and the new section.

Not covered: the tables are hand-maintained, so nothing prevents them drifting from the registries. A CI generator deriving them at build time would close that, and is worth doing separately.

Documentation

This PR is the documentation change. No follow-up docs work required.

#1 Dispatcher vocabulary: read/list/write are dispatchers whose real surface is
entity types and operations, which the page never listed (it pointed at the
schema tool and GitHub). Adds two tables generated from the server registry
(writes/registry.py, read_list/registry.py): read/list entities and write
operations, with a note that only run_experiment is Cloud-only.

#2 Security: traces contain untrusted end-user text that enters a context also
holding the write tool (the prompt-injection base case). Adds a Security section
near the top: treat trace content as data not instructions, prefer read-only
work, scope the credential, verify before writing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@aswynz
aswynz requested review from a team as code owners August 28, 2026 20:16
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Aug 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⏱️ pre-commit per-hook timing

No linted files changed — nothing to run.

⏭️ 44 skipped (no matching files changed)
Hook Description Result
🐍 trim trailing whitespace — python sdk Strip trailing whitespace ⏭️
🐍 fix end of files — python sdk Ensure files end in a newline ⏭️
🐍 ruff — python sdk Lint + autofix Python (ruff) ⏭️
🐍 ruff-format — python sdk Format Python code (ruff) ⏭️
🐍 mypy — python sdk Static type check ⏭️
🤖 trim trailing whitespace — optimizer Strip trailing whitespace ⏭️
🤖 fix end of files — optimizer Ensure files end in a newline ⏭️
🤖 check yaml — optimizer Validate YAML syntax ⏭️
🤖 check json — optimizer Validate JSON syntax ⏭️
🤖 check toml — optimizer Validate TOML syntax ⏭️
🤖 check for added large files — optimizer Block large files (>1MB) ⏭️
🔐 detect private key — optimizer Block committed private keys ⏭️
🤖 check for merge conflicts — optimizer Block merge-conflict markers ⏭️
🤖 check for case conflicts — optimizer Block case-only name clashes ⏭️
🤖 pyupgrade — optimizer Modernize Python syntax ⏭️
🤖 ruff — optimizer Lint + autofix Python (ruff) ⏭️
🤖 ruff-format — optimizer Format Python code (ruff) ⏭️
🤖 mypy — optimizer Static type check ⏭️
📓 nbstripout — optimizer notebooks Strip notebook output ⏭️
📝 markdownlint — optimizer Lint Markdown ⏭️
🔤 codespell — optimizer Fix common misspellings ⏭️
📊 radon cc — optimizer Cyclomatic-complexity gate ⏭️
📊 radon raw — optimizer Raw size metrics gate ⏭️
📊 xenon — optimizer Fail on complexity thresholds ⏭️
📊 lizard — optimizer Cyclomatic-complexity gate ⏭️
🧹 vulture — optimizer Find dead code ⏭️
🛡️ trim trailing whitespace — guardrails Strip trailing whitespace ⏭️
🛡️ fix end of files — guardrails Ensure files end in a newline ⏭️
🛡️ ruff — guardrails Lint + autofix Python (ruff) ⏭️
🛡️ ruff-format — guardrails Format Python code (ruff) ⏭️
🛡️ mypy — guardrails Static type check ⏭️
⚓ helm-docs Regenerate Helm chart README ⏭️
block non-public FE plugins Block non-public FE plugins ⏭️
☕ spotless — java backend Format Java code ⏭️
🧪 pre-commit wrapper smoke tests Self-test the wrapper scripts ⏭️
🧪 rebaseline script tests Self-test the changelog re-baseline script ⏭️
🌐 eslint — frontend Lint + autofix JS/TS ⏭️
🌐 typecheck — frontend Whole-project tsc type check ⏭️
📘 eslint — typescript sdk Lint + autofix JS/TS ⏭️
📘 typecheck — typescript sdk Whole-project tsc type check ⏭️
⚙️ actionlint — github workflows Lint GitHub Actions workflows ⏭️
🐳 hadolint — dockerfiles Lint Dockerfiles ⏭️
🌈 zizmor — github workflows security Security-scan GitHub Actions workflows ⏭️
🛡️ semgrep — java backend sql Block SQL injection-prone string formatting ⏭️

@CometActions

Copy link
Copy Markdown
Collaborator

No test needed here.

No product surface in this PR — only docs, CI, tests, lockfiles or other non-product files.

Run

Advisory, from the QA test radar. Nothing here blocks this PR, and anything it proposes is a draft for review.

@github-actions

Copy link
Copy Markdown
Contributor

🌿 Preview your docs: https://opik-preview-01a04a05-2216-76e6-ad8f-0599248dd542.docs.buildwithfern.com/docs/opik

No broken links found

Unverified links (timeout / rate-limited / server error — not failing the check)

https://aistudio.google.com/apikey (401)
↳ on page: /docs/opik/development/optimization-runs/optimization/configure_models
https://code.claude.com/docs/en/monitoring-usage (timeout)
↳ on page: /docs/opik/integrations/claude-agent-sdk
https://console.cloud.google.com/iam-admin/iam (401)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://console.cloud.google.com/iam-admin/roles (401)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://console.cloud.google.com/iam-admin/serviceaccounts (401)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://console.mistral.ai/api-keys/ (timeout)
↳ on page: /docs/opik/integrations/mistral
https://console.x.ai/ (403)
↳ on page: /docs/opik/integrations/xai-grok
https://docs.predibase.com/integrations/comet (403)
↳ on page: /docs/opik/integrations/predibase
https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/opik.docs.buildwithfern.com/ffba319ffbf1e0d7df9cb449a51e0718efb7cf10929e2767443b9c343d268749/img/tracing/openai_video_integration.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260828T201741Z&X-Amz-Expires=604800&X-Amz-Signature=fed704d54c1b4bd98b1943fbb467cd66cdc97fecbb4e3e6bae39873bd148c9e3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject (403)
↳ on page: /docs/opik/integrations/openai
https://learn.microsoft.com/en-us/semantic-kernel/concepts/enterprise-readiness/observability/telemetry-with-console?tabs=Powershell-CreateFile%2CEnvironmentFile&pivots=programming-language-python (timeout)
↳ on page: /docs/opik/integrations/semantic-kernel
https://learn.microsoft.com/en-us/semantic-kernel/overview/ (timeout)
↳ on page: /docs/opik/integrations/semantic-kernel
https://portal.azure.com/ (403)
↳ on page: /docs/opik/administration/workspace-settings/ai_providers
https://x.ai/ (403)
↳ on page: /docs/opik/integrations/xai-grok


📌 Results for commit 89cbc66

@aswynz
aswynz requested a review from alexkuzmik August 31, 2026 18:38
@aswynz aswynz changed the title docs(mcp): publish the read/write vocabulary and add a Security section [NA] [DOCS] Publish the MCP read/write vocabulary and add a Security section Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation 🟢 size/S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants