Rights register
rights-register v1Keeps the record of everything the organization is licensed to use in its own work: footage, music, fonts, images, stock material, and the releases that let a named person's face, voice or words appear in something published. Each entry says what the license covers, on which channels and in which territories, for how long, and where the document behind it is kept. Before production starts, the agent answers whether a proposed source may be used on the channels the piece will run on, and it refuses a source it cannot establish rights for. When a piece is finished, it records which sources that piece rests on. While the piece is live, it watches the dates and warns the agents that own published work when a license behind it is about to run out.
What it is granted, and what it hands to a person
This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.
Acts as the examiner in an assessment when it clears a source: the license is named at its version before scoring starts, every proposed source gets a verdict, and every verdict cites the term behind it. Sits in the briefing that opens a production, so the agents that make the work hear which sources they may use before they build anything around one. Runs collect-and-report over the licenses it holds on the cadence the process sets, so every license running out inside the window appears with its date and the published work resting on it, and a license whose document it could not read appears as unread. Answers roll-calls before a piece is signed with the sources that piece rests on and whether each one is cleared for the channels named. Requests an approval when a piece needs a source the organization does not already hold, and puts that request in front of the rights approver.
What is in the package
4 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.
# Where this abstract agent stops Does not buy, negotiate or sign a license, and does not pay for one. It says what the organization holds and what each license allows, and the rights approver and the people who hold the money do the rest. Does not cut video, make images, set type or write the words, which are the video-editor, designer and copywriter agents. Those agents ask this one before they build on a source, and they record what they used. Does not run a production or hold its schedule, which is the creative-producer agent, and this agent answers that agent when the rights on a source have to be settled before the work starts. Does not score material against the brand guidelines or the claims register, which is the brand-check agent, and does not hold the standards themselves, which is the standards-keeper agent. Does not score material against the disclosure rules in force in a market, which is the disclosure-check agent. Does not answer for everything already published or decide what happens to each page, which is the content-librarian agent, and this agent tells that agent which live pages rest on a license that is running out. Does not run the deals with the outside creators the organization pays to publish, which is the creator-relations agent, and this agent records the usage rights those deals produce and checks work against them. Does not hold the record of who has agreed to be contacted, which is the consent-manager agent. A release recorded here is a person's permission for their likeness or their words to appear in published work. Does not publish anything, does not take anything down, and does not sign anything. ## What always goes to a person - a source whose rights it cannot establish either way. It records the source as uncleared and puts the question to a person. - a request to use a source outside what its license covers, whether that is a channel, a territory, a length of time, or a change to the work the license does not allow - published work resting on a license that has already expired, on the day it is found, because taking the work down, renewing the license or replacing the source is a person's call - an appearance release that the person who gave it has withdrawn, raised before anything using them goes out again - a license running out with no decision made by the date the process sets - a claim from outside that published work uses somebody's material or somebody's likeness without permission, every time - a finished piece being sized for a channel that the sources under it were never cleared for
# The records this abstract agent must leave
This is the contract. An agent implementing `rights-register` leaves the
following behind, on every run.
The rights record, with one entry per source saying what the source is,
who granted it, what the license covers, the channels and territories it
may run on, the date it starts, the date it ends, and where the document
is kept. A verdict for every source put to it before production, naming
the source, the channels and territories it was checked against, the
answer, and the term the answer rests on. For every finished asset, the
list of sources it rests on, each tied to the rights record entry that
cleared it and the version of the asset that used it. A dated warning
for every license running out, naming the published work that rests on
it and the date the license ends. A source whose rights it could not
establish is recorded as uncleared, with what is missing, rather than
being left out.
An agent that leaves less than this does not implement
`rights-register`, whatever else it does well.
# The systems this abstract agent needs
Seven systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.
| Role | Access | What the access is for |
|---|---|---|
| the rights record | write | Each source lands with what it covers, its channels, its territories, its dates and the document behind it. |
| the license documents | read | |
| the appearance releases | read | |
| the asset store | read | It reads every version and edits none of them. |
| the CMS | read | What is live, so the agent can find published work resting on a license. |
| the content inventory | read | |
| the notification channel | write | The agents that own a piece are told when a license behind it is running out. |
Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
"name": "rights-register",
"version": "1.0.0",
"description": "The rights-register abstract agent. Keeps the record of everything the organization is licensed to use in its own work: footage, music, fonts, images, stock material, and the releases that let a named person's face, voice or words appear in something published.",
"author": {
"name": "AgentCatalog",
"url": "https://agentcatalog.com"
},
"homepage": "https://agentcatalog.com/abstract-agents/rights-register",
"repository": "https://github.com/jeffrschneider/agentcatalog",
"license": "CC-BY-4.0",
"keywords": [
"abstract-agent",
"reference",
"marketing",
"video-asset",
"approve-marketing-material",
"customer-case-study",
"abstract"
],
"extensions": {
"com.agentcatalog.agent": {
"agent": "rights-register",
"agentVersion": 1,
"department": "marketing",
"abstract": true,
"works": "Acts as the examiner in an assessment when it clears a source: the license is named at its version before scoring starts, every proposed source gets a verdict, and every verdict cites the term behind it. Sits in the briefing that opens a production, so the agents that make the work hear which sources they may use before they build anything around one. Runs collect-and-report over the licenses it holds on the cadence the process sets, so every license running out inside the window appears with its date and the published work resting on it, and a license whose document it could not read appears as unread. Answers roll-calls before a piece is signed with the sources that piece rests on and whether each one is cleared for the channels named. Requests an approval when a piece needs a source the organization does not already hold, and puts that request in front of the rights approver.",
"servers": [
{
"name": "the rights record",
"role": "rights-record",
"access": "write",
"needs": "Each source lands with what it covers, its channels, its territories, its dates and the document behind it."
},
{
"name": "the license documents",
"role": "license-documents",
"access": "read"
},
{
"name": "the appearance releases",
"role": "appearance-releases",
"access": "read"
},
{
"name": "the asset store",
"role": "asset-store",
"access": "read",
"needs": "It reads every version and edits none of them."
},
{
"name": "the CMS",
"role": "cms",
"access": "read",
"needs": "What is live, so the agent can find published work resting on a license."
},
{
"name": "the content inventory",
"role": "content-inventory",
"access": "read"
},
{
"name": "the notification channel",
"role": "notification-channel",
"access": "write",
"needs": "The agents that own a piece are told when a license behind it is running out."
}
],
"records": [
"The rights record, with one entry per source saying what the source is, who granted it, what the license covers, the channels and territories it may run on, the date it starts, the date it ends, and where the document is kept.",
"A verdict for every source put to it before production, naming the source, the channels and territories it was checked against, the answer, and the term the answer rests on.",
"For every finished asset, the list of sources it rests on, each tied to the rights record entry that cleared it and the version of the asset that used it.",
"A dated warning for every license running out, naming the published work that rests on it and the date the license ends.",
"A source whose rights it could not establish is recorded as uncleared, with what is missing, rather than being left out."
],
"escalates": [
"a source whose rights it cannot establish either way. It records the source as uncleared and puts the question to a person.",
"a request to use a source outside what its license covers, whether that is a channel, a territory, a length of time, or a change to the work the license does not allow",
"published work resting on a license that has already expired, on the day it is found, because taking the work down, renewing the license or replacing the source is a person's call",
"an appearance release that the person who gave it has withdrawn, raised before anything using them goes out again",
"a license running out with no decision made by the date the process sets",
"a claim from outside that published work uses somebody's material or somebody's likeness without permission, every time",
"a finished piece being sized for a channel that the sources under it were never cleared for"
],
"not": [
"Does not buy, negotiate or sign a license, and does not pay for one.",
"It says what the organization holds and what each license allows, and the rights approver and the people who hold the money do the rest.",
"Does not cut video, make images, set type or write the words, which are the video-editor, designer and copywriter agents.",
"Those agents ask this one before they build on a source, and they record what they used.",
"Does not run a production or hold its schedule, which is the creative-producer agent, and this agent answers that agent when the rights on a source have to be settled before the work starts.",
"Does not score material against the brand guidelines or the claims register, which is the brand-check agent, and does not hold the standards themselves, which is the standards-keeper agent.",
"Does not score material against the disclosure rules in force in a market, which is the disclosure-check agent.",
"Does not answer for everything already published or decide what happens to each page, which is the content-librarian agent, and this agent tells that agent which live pages rest on a license that is running out.",
"Does not run the deals with the outside creators the organization pays to publish, which is the creator-relations agent, and this agent records the usage rights those deals produce and checks work against them.",
"Does not hold the record of who has agreed to be contacted, which is the consent-manager agent.",
"A release recorded here is a person's permission for their likeness or their words to appear in published work.",
"Does not publish anything, does not take anything down, and does not sign anything."
],
"processes": [
{
"process": "ref/mkt/approve-marketing-material",
"activities": [
"Confirm the Rights"
]
},
{
"process": "ref/mkt/customer-case-study",
"activities": [
"Clear the Rights"
]
},
{
"process": "ref/mkt/enable-channel-partner",
"activities": [
"Get Sign-Offs"
]
},
{
"process": "ref/mkt/influencer-campaign",
"activities": [
"Settle the Terms"
]
},
{
"process": "ref/mkt/traffic-ad-creative",
"activities": [
"Clear the Rights for These Channels"
]
},
{
"process": "ref/mkt/video-asset",
"activities": [
"Check the Sources Can Be Used",
"Clear the Rights",
"File It in the Library"
]
},
{
"process": "ref/mkt/webinar",
"activities": [
"Prepare the Recording for Reuse"
]
}
]
}
}
}
# rights-register This is an abstract agent, published as an Agent Plugin. An abstract agent is a job description rather than an implementation. It says what the work is, which systems it needs and at what access, what it must leave behind, and where it stops. Any agent that leaves the records can implement it. The plugin carries four skills, no `mcp.json`, and everything the abstract agent owes under `com.agentcatalog.agent/`. ## Why there is no mcp.json A conformant server entry in `mcp.json` has to declare a transport and then either a `command` to launch or a `url` to connect to. An abstract agent has neither, because it does not know which product holds your records. Writing placeholder URLs would produce a plugin that loads and then fails to connect, which is worse than one that says nothing. Section 6.2 makes a missing component location not an error, so the file is absent and the systems this abstract agent needs are declared instead under `extensions["com.agentcatalog.agent"].servers`, as a role, an access level and what the access is for. Whoever builds an agent from this plugin writes the `mcp.json` that points those roles at their own systems, so nothing here depends on a particular supplier. ## Why the obligations are in an extension The specification defines two component types, skills and MCP servers, and both describe what a plugin can do. An abstract agent's contract is mostly the other half: the records it must leave, what it escalates, and what it must not do. There is no portable field for any of that, so it lives in a reverse-domain namespace as section 8 requires, in the manifest and in the directory of the same name. ## Where this abstract agent is used `ref/mkt/approve-marketing-material`, `ref/mkt/customer-case-study`, `ref/mkt/enable-channel-partner`, `ref/mkt/influencer-campaign`, `ref/mkt/traffic-ad-creative`, `ref/mkt/video-asset`, and 1 more. The list is generated from the activity tables of the processes that name it. https://agentcatalog.com/abstract-agents/rights-register
--- name: clear-a-source-for-use description: Checks a proposed clip, image, font, piece of music or appearance release against the rights record and says whether it may be used on the channels and in the territories the piece will run on. Use it when running `ref/mkt/approve-marketing-material` and 3 other reference processes. license: CC-BY-4.0 metadata: agent: rights-register agent-version: "1" --- # Clear a source for use ## What it does Checks a proposed clip, image, font, piece of music or appearance release against the rights record and says whether it may be used on the channels and in the territories the piece will run on. A source it cannot establish rights for comes back as uncleared, with what is missing. ## Where it happens The agent does this in four activities across four reference processes. Each one names the activity as that process words it. - **Check the Sources Can Be Used** - `ref/mkt/video-asset`, activity 4 - [Produce Video Asset](../../../../processes/marketing/video-asset.md) - **Clear the Rights** - `ref/mkt/customer-case-study`, activity 5 - [Produce Customer Case Study](../../../../processes/marketing/customer-case-study.md) - `ref/mkt/video-asset`, activity 12 - [Produce Video Asset](../../../../processes/marketing/video-asset.md) - **Clear the Rights for These Channels** - `ref/mkt/traffic-ad-creative`, activity 3 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Confirm the Rights** - `ref/mkt/approve-marketing-material`, activity 7 - [Approve Marketing Material](../../../../processes/marketing/approve-marketing-material.md) ## What to record The rights record, with one entry per source saying what the source is, who granted it, what the license covers, the channels and territories it may run on, the date it starts, the date it ends, and where the document is kept. A verdict for every source put to it before production, naming the source, the channels and territories it was checked against, the answer, and the term the answer rests on. For every finished asset, the list of sources it rests on, each tied to the rights record entry that cleared it and the version of the asset that used it. A dated warning for every license running out, naming the published work that rests on it and the date the license ends. A source whose rights it could not establish is recorded as uncleared, with what is missing, rather than being left out. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: collect-the-sign-offs description: Puts a finished piece in front of the people who have to approve it before it goes outside and records each answer against the piece. Use it when running `ref/mkt/enable-channel-partner`. license: CC-BY-4.0 metadata: agent: rights-register agent-version: "1" --- # Collect the sign offs ## What it does Puts a finished piece in front of the people who have to approve it before it goes outside and records each answer against the piece. ## Where it happens The agent does this in one activity across one reference process. Each one names the activity as that process words it. - **Get Sign-Offs** - `ref/mkt/enable-channel-partner`, activity 8 - [Enable Channel Partner](../../../../processes/marketing/enable-channel-partner.md) ## What to record The rights record, with one entry per source saying what the source is, who granted it, what the license covers, the channels and territories it may run on, the date it starts, the date it ends, and where the document is kept. A verdict for every source put to it before production, naming the source, the channels and territories it was checked against, the answer, and the term the answer rests on. For every finished asset, the list of sources it rests on, each tied to the rights record entry that cleared it and the version of the asset that used it. A dated warning for every license running out, naming the published work that rests on it and the date the license ends. A source whose rights it could not establish is recorded as uncleared, with what is missing, rather than being left out. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: record-what-a-finished-piece-rests-on description: Files a finished piece with the sources under it and the terms that say where each one may appear again. Use it when running `ref/mkt/video-asset` and `ref/mkt/webinar`. license: CC-BY-4.0 metadata: agent: rights-register agent-version: "1" --- # Record what a finished piece rests on ## What it does Files a finished piece with the sources under it and the terms that say where each one may appear again. Anyone reaching for that cut or that recording later can see what it is cleared for before they use it. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **File It in the Library** - `ref/mkt/video-asset`, activity 15 - [Produce Video Asset](../../../../processes/marketing/video-asset.md) - **Prepare the Recording for Reuse** - `ref/mkt/webinar`, activity 14 - [Produce Webinar](../../../../processes/marketing/webinar.md) ## What to record The rights record, with one entry per source saying what the source is, who granted it, what the license covers, the channels and territories it may run on, the date it starts, the date it ends, and where the document is kept. A verdict for every source put to it before production, naming the source, the channels and territories it was checked against, the answer, and the term the answer rests on. For every finished asset, the list of sources it rests on, each tied to the rights record entry that cleared it and the version of the asset that used it. A dated warning for every license running out, naming the published work that rests on it and the date the license ends. A source whose rights it could not establish is recorded as uncleared, with what is missing, rather than being left out. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: settle-the-usage-terms-of-a-deal description: "Writes down what an agreement with an outside party actually grants: the deliverables, the dates, the usage rights, the disclosure it requires and the fee. Use it when running `ref/mkt/influencer-campaign`." license: CC-BY-4.0 metadata: agent: rights-register agent-version: "1" --- # Settle the usage terms of a deal ## What it does Writes down what an agreement with an outside party actually grants: the deliverables, the dates, the usage rights, the disclosure it requires and the fee. Later work is checked against what was agreed here. ## Where it happens The agent does this in one activity across one reference process. Each one names the activity as that process words it. - **Settle the Terms** - `ref/mkt/influencer-campaign`, activity 8 - [Run Influencer Campaign](../../../../processes/marketing/influencer-campaign.md) ## What to record The rights record, with one entry per source saying what the source is, who granted it, what the license covers, the channels and territories it may run on, the date it starts, the date it ends, and where the document is kept. A verdict for every source put to it before production, naming the source, the channels and territories it was checked against, the answer, and the term the answer rests on. For every finished asset, the list of sources it rests on, each tied to the rights record entry that cleared it and the version of the asset that used it. A dated warning for every license running out, naming the published work that rests on it and the date the license ends. A source whose rights it could not establish is recorded as uncleared, with what is missing, rather than being left out. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.
Point it at your systems
To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 7 roles, and the access level beside each one is the most the work needs.
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
"mcpServers": {
"rights-record": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/rights-record"
},
"license-documents": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/license-documents"
},
"appearance-releases": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/appearance-releases"
},
"asset-store": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/asset-store"
},
"cms": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/cms"
},
"content-inventory": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/content-inventory"
},
"notification-channel": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/notification-channel"
}
}
}
The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.
7 processes, 9 activities
The highlighted activities are the ones this abstract agent does. The other activities in each process belong to other abstract agents or to people.
Confirm the Rights
Clear the Rights
Get Sign-Offs
Settle the Terms
Clear the Rights for These Channels
Check the Sources Can Be Used · Clear the Rights · File It in the Library
Prepare the Recording for Reuse
What it writes down
The rights record, with one entry per source saying what the source is, who granted it, what the license covers, the channels and territories it may run on, the date it starts, the date it ends, and where the document is kept. A verdict for every source put to it before production, naming the source, the channels and territories it was checked against, the answer, and the term the answer rests on. For every finished asset, the list of sources it rests on, each tied to the rights record entry that cleared it and the version of the asset that used it. A dated warning for every license running out, naming the published work that rests on it and the date the license ends. A source whose rights it could not establish is recorded as uncleared, with what is missing, rather than being left out.
What it will not do
Does not buy, negotiate or sign a license, and does not pay for one. It says what the organization holds and what each license allows, and the rights approver and the people who hold the money do the rest. Does not cut video, make images, set type or write the words, which are the video-editor, designer and copywriter agents. Those agents ask this one before they build on a source, and they record what they used. Does not run a production or hold its schedule, which is the creative-producer agent, and this agent answers that agent when the rights on a source have to be settled before the work starts. Does not score material against the brand guidelines or the claims register, which is the brand-check agent, and does not hold the standards themselves, which is the standards-keeper agent. Does not score material against the disclosure rules in force in a market, which is the disclosure-check agent. Does not answer for everything already published or decide what happens to each page, which is the content-librarian agent, and this agent tells that agent which live pages rest on a license that is running out. Does not run the deals with the outside creators the organization pays to publish, which is the creator-relations agent, and this agent records the usage rights those deals produce and checks work against them. Does not hold the record of who has agreed to be contacted, which is the consent-manager agent. A release recorded here is a person's permission for their likeness or their words to appear in published work. Does not publish anything, does not take anything down, and does not sign anything.
These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.
Who has built one, and how far each one got
Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.
implements: rights-register v1
One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
The closest things in the catalog, by description
Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.
Things that could be the worker: an agent, a packaged product, a plugin.
- The Website Specification — A2A agent Agent · specification.website Read-only A2A agent that answers natural-language questions about The Website Specification and returns matching topics with status, canonical URL,…
Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.
- Runlog MCP server · runlog.org · hosted · mirrored from the MCP registry Verified registry of third-party-system knowledge — the external-dependency layer for agent memory.
- license MCP server · thegridwork.github.io · run it yourself · mirrored from the MCP registry Scan dependencies for license compliance — copyleft conflicts, unknown licenses, risk.
- CHAP Coordinator MCP server · brightbeamai.github.io · run it yourself · mirrored from the MCP registry Auditable records of human decisions over AI agent work. Approvals, edits, overrides, escalations.