Publish files and artifacts to a live URL you own, and build, deploy, and run skilled AI agents from your terminal.
https://api.valet.dev/mcpValet hosts software an organization builds for itself: websites, Procfile apps, agents, and skills. Websites and apps are served at their own URLs, agents run on their own, and skills are know-how every member's agent reads, each at its own private URL. These tools create, publish, read back, update, and remove them.
The organization's skills are how it shares know-how with every member's agent, for any work done for it, not only work on Valet. When a task might be covered by how the organization works, call and read a matching skill with before starting. When the user wants to share a skill with their team, such as a local one, with kind skill and then make it available to every member. To change some files of a skill, pass edits and the base_version reported.
Before any work, call with governance and follow it. It says what the organization expects, in what order to work, and which other skills to read and when. Read it again before any publish call. An organization may have replaced it; the result says whether you are holding the organization's version or Valet's default.
Reach for whenever an answer reads better at a live URL than as text in the conversation: a report, essay, slide-like narrative, dashboard, marketing surface, or other static artifact. Offer it when the user has not asked, and publish once they agree. Reach for when the work needs a server process and a Procfile says how to run it. Reach for when the work is an agent with a SOUL.md. Every publish names the thing: with files, title and description are required on sites and apps, and a call missing either is refused before anything is published. A push takes them from the commit's valet.yaml.
A new website, app, agent, or skill starts with , which makes it empty and gives it a name. The publish tools then change one that exists and refuse a name that does not. Publishing anonymously is the exception: it makes its own temporary site.
When you can run git with network access, publish from a push instead of sending files: call to get a Git URL and the commands to use it, push your commit, then pass push: {id, commit} to the publish tool in place of files. takes a push like the other publish tools. Send files when you cannot run git.
Content reaches a service as a Git push or as files. If you can run shell commands, call with git and run git ls-remote on its read URL, or on a push's URL when nothing is published yet. If that works, clone to read, and publish through , git push, and a publish with push, which carries any file. If a sandbox blocks the network, ask to run Git outside it. If Git is missing or cannot reach Valet, or the user declines, read 's files and publish with files, which carries text only. Keep the outcome for the session.
Discover before deciding. says what the organization already has, its skills included; reads what was published so you change it rather than replace it. says what the organization has written down. , , and are the path from a personal integration to an organization connector a website or agent can use.
2 in the Claude listing