mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-12 21:56:21 +00:00
A role with a Model Context Protocol surface declares one mcp: entry in meta/services.yml. The vocabulary module owns every allowed value, a hard lint validates each declaration, and roles_with_service gains an opt-in direction= kwarg so a client role resolves its servers at deploy time. The lookup stays backwards compatible: without direction= the entries keep their original four keys, so the existing dashboard, prometheus and matomo callers are untouched. With it, each entry additionally carries transport, auth, auth_subject and an endpoint dict whose port is resolved from the referenced service's ports.local or ports.internal. The lint rejects Jinja on MCP-specific fields (only enabled/shared may carry it) because the static resolver cannot evaluate a templated block, and it verifies that endpoint.service_key names a service in the same file whose ports.* actually contain endpoint.port_key. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contribution documentation 🤝
This directory contains contributor-facing repository rules and workflows. Its scope is how humans and agents set up the environment, write documentation, communicate, define requirements, and contribute safely through the project lifecycle.