develop-wandb-mcp-tools
Skill71 starsChanged 32 days agoMITView on GitHub
Safely implement, fix, refactor, or review W&B MCP tools and their shared runtime behavior. Use for changes to public tool schemas, descriptions, registration, tool profiles/access modes, W&B or Weave reads and writes, ARIA integration, admission cost, response limits, error handling, privacy, or MCP client compatibility in this repository.
- Reads credentials
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 10 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Read CONTRIBUTING.md and the relevant tool, registration, and tests before editing.
- Distinctive: line 11
Prefer extending an existing tool.
- Distinctive: line 14
read, write, or read/write behavior.
- Distinctive: line 19
Keep caller-supplied GraphQL out of normal tools.
- Very specific: line 23
Put tool behavior in src/wandb_mcp_server/mcp_tools/ and register it through register_tools().
- Very specific: line 24
Add every public tool exactly once to src/wandb_mcp_server/runtime-contract.json.
- Very specific: line 25
Treat WANDB_MCP_TOOL_PROFILE as the deployment capability envelope and WANDB_MCP_ACCESS_MODE=read-only as a monotonic subtraction.
- Distinctive: line 29
Never log raw arguments, prompts, queries, filters, credentials, resource identifiers, or upstream response bodies.
- Distinctive: line 30
Add only bounded, low-cardinality telemetry dimensions.
- Distinctive: line 31
Do not retry non-idempotent writes.
- Distinctive: line 37
Add focused tests for:
- Distinctive: line 41
every supported tool-profile/access-mode manifest, unknown-profile and legacy-variable rejection, and missing prerequisites.
- Very specific: line 46
Run the smallest relevant tests while iterating, then run the repository checks from CONTRIBUTING.md.
- Distinctive: line 54
Use a dedicated test entity/project, never customer data.
- Very specific: line 55
Prefer read-only operations.
- Distinctive: line 60
Update the README, query capability matrix, release notes, and environment example only when their public contract changed.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Develop W&B MCP Tools
Establish the contract
- Read
CONTRIBUTING.mdand the relevant tool, registration, and tests before editing. - Prefer extending an existing tool. Add a new public tool only when the request explicitly requires a distinct capability.
- Record the intended public contract before coding:
- input schema and validation;
- read, write, or read/write behavior;
- idempotency and ambiguous-timeout behavior;
- canonical tool group, tool profile, access mode, prerequisite, and risk metadata;
- bounded request, iteration, and response behavior;
- stable error codes and retry guidance.
- Keep caller-supplied GraphQL out of normal tools. Use documented SDK APIs or fixed, application-owned query-only projections.
Implement through shared boundaries
- Put tool behavior in
src/wandb_mcp_server/mcp_tools/and register it throughregister_tools(). - Add every public tool exactly once to
src/wandb_mcp_server/runtime-contract.json; generate release evidence and documentation from that packaged contract rather than copying manifests. - Treat
WANDB_MCP_TOOL_PROFILEas the deployment capability envelope andWANDB_MCP_ACCESS_MODE=read-onlyas a monotonic subtraction. Neither replaces call-time authorization. - Reuse the shared API configuration, URL resolution, error sanitizer, response budget, deadline, and
InstrumentedFastMCPboundary. - Classify the tool in
admission.py; an unclassified tool is deliberately treated as heavy. - Preserve public links on
WANDB_BASE_URL; never expose a server-side route. - Never log raw arguments, prompts, queries, filters, credentials, resource identifiers, or upstream response bodies.
- Add only bounded, low-cardinality telemetry dimensions.
- Do not retry non-idempotent writes. Return an explicit unknown outcome when a timeout makes write completion ambiguous.
- For optional external services, require an explicit reviewed profile and typed endpoint configuration, validate the endpoint, bound input and polling, disable redirects when credentials could cross origins, and keep the group out of managed profiles until its entitlement boundary is approved.
- For credential-forwarding HTTP tools, stream through a finite byte cap before JSON decoding, reject unexpected redirects or encodings, and bound the request by the active MCP tool deadline.
Test the behavior users actually invoke
Add focused tests for:
- valid, invalid, missing, null, large, cyclic, and non-finite inputs or results;
- authentication, authorization, not-found, timeout, rate-limit, overload, and malformed-upstream errors;
- every supported tool-profile/access-mode manifest, unknown-profile and legacy-variable rejection, and missing prerequisites;
- cancellation, permit cleanup, pagination, truncation, and concurrency bounds;
- credential, prompt, customer-name, and internal-host canaries in responses, logs, and telemetry;
- the installed wheel through an official MCP client when transport or registration changes.
Run the smallest relevant tests while iterating, then run the repository checks from CONTRIBUTING.md. For a release-targeted change, also run the complete release gate in RELEASING.md.
Handle live credentials safely
Mock-based tests are the default and need no API key. Run live tests only when the user explicitly authorizes them and supplies an isolated fixture.
- Receive credentials through the environment; never inspect, print, echo, hash for display, copy, or report metadata about an
.envfile. - Source a user-approved environment file only when necessary and only with shell tracing disabled; prefer injected CI secrets.
- Use a dedicated test entity/project, never customer data.
- Prefer read-only operations. For authorized write tests, use uniquely named fixtures and delete them in
finally; cleanup failure fails the test. - Sanitize logs and artifacts before attaching them to a PR.
Finish the change
Update the README, query capability matrix, release notes, and environment example only when their public contract changed. In the PR, state the exact behavior, compatibility/security impact, tests run, and any unverified live behavior. Never present mocked coverage as live proof.
In this repositoryOne other file it gives its agents.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

