Skip to content

Commit de33fb9

Browse files
committed
Model catalog roles as tool metadata
1 parent bb7380c commit de33fb9

1 file changed

Lines changed: 86 additions & 37 deletions

File tree

README.md

Lines changed: 86 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,57 @@ Agent-Tools is the canonical tool catalog for the AGenNext platform.
44

55
This is a cloud marketplace-style catalog problem.
66

7-
A tool is an invocable product/capability package that can be discovered, governed, versioned, permissioned, reviewed, priced, installed, and used by agents, workflows, teams, and runtimes.
7+
A tool is an invocable catalog object that can be discovered, governed, versioned, permissioned, reviewed, priced, installed, and used by agents, workflows, teams, and runtimes.
88

99
## Core model
1010

11+
```text
12+
Tool
13+
= primary catalog object
14+
= invocable capability/product
15+
16+
Tool metadata includes:
17+
- capabilities
18+
- author
19+
- publisher
20+
- versions
21+
- provider offers
22+
- license
23+
- pricing
24+
- risk
25+
- approval requirements
26+
- invocation contracts
27+
```
28+
29+
The primary catalog object is always the **Tool**.
30+
31+
Capability, author, publisher, version, and provider are metadata attached to the tool record.
32+
33+
## Role definitions
34+
1135
```text
1236
Capability
13-
= standardized semantic ability
14-
= what can be done
37+
= standardized semantic ability implemented by the tool
1538
16-
Tool
17-
= catalog product implementing one or more capabilities
39+
Author
40+
= creator or maintainer of the tool
41+
42+
Publisher
43+
= party that lists, curates, verifies, or publishes the tool into the catalog
1844
19-
Tool Version
20-
= versioned contract for a tool
45+
Version
46+
= version metadata and compatibility contract for the tool
2147
2248
Provider Offer
23-
= one way to access a specific tool version
49+
= one access path for a specific tool version
2450
2551
Provider
26-
= organization, package, service, MCP server, CLI, SDK, HTTP API, or runtime endpoint offering the tool version
52+
= organization, package, service, MCP server, CLI, SDK, HTTP API, marketplace, or runtime endpoint offering that version
2753
```
2854

29-
The primary catalog object is the **Tool**.
30-
31-
Capabilities standardize meaning. Versions standardize compatibility. Providers describe how a specific version is obtained or invoked.
32-
3355
## Marketplace rule
3456

3557
```text
36-
One Capability
37-
can be implemented by many Tools
38-
3958
One Tool
4059
can implement many Capabilities
4160
@@ -48,24 +67,37 @@ One Tool Version
4867
One Provider
4968
can offer many Tools
5069
70+
One open-source Tool
71+
can have many Providers
72+
5173
One MCP Server
5274
is a Provider type
5375
5476
One MCP Server
55-
can expose many Tool Versions
77+
can expose many Tools
5678
```
5779

58-
## Example: capability, tool, version, providers
80+
## Example: tool with capability, author, publisher, version, and providers
5981

6082
```yaml
6183
id: filesystem.read_file
6284
type: tool
6385
name: Read File
86+
6487
capabilities:
6588
- file.read
6689

90+
author:
91+
name: AGenNext
92+
type: Organization
93+
94+
publisher:
95+
name: AGenNext
96+
type: Organization
97+
6798
versions:
6899
- version: 1.0.0
100+
status: active
69101
contract:
70102
inputs:
71103
path: string
@@ -82,6 +114,9 @@ versions:
82114
provider_type: http_api
83115
protocol: https
84116
offer_status: active
117+
118+
risk: medium
119+
approval_required: false
85120
```
86121
87122
## Example: open-source tool with multiple providers
@@ -90,13 +125,24 @@ versions:
90125
id: surrealkit
91126
type: tool
92127
name: SurrealKit
128+
93129
capabilities:
94130
- database.schema.generate
95131
- database.migration.run
96132
- database.seed.load
97133

134+
author:
135+
name: SurrealDB
136+
type: Organization
137+
138+
publisher:
139+
name: AGenNext
140+
type: Organization
141+
role: catalog_curator
142+
98143
versions:
99144
- version: 2.2.1
145+
status: supported
100146
providers:
101147
- provider_id: surrealkit-github-release
102148
provider_type: github_release
@@ -121,12 +167,13 @@ Agent-Tools owns:
121167
```text
122168
- tool catalog entries
123169
- capability references used by tools
124-
- version contracts
170+
- author and publisher metadata
171+
- version metadata and compatibility contracts
125172
- provider offer metadata
126173
- external tool definitions
127174
- MCP provider/package metadata where needed
128175
- tool invocation contracts
129-
- tool security, approval, and governance metadata
176+
- tool security, approval, pricing, and governance metadata
130177
```
131178
132179
Agent-Tools does not own:
@@ -154,7 +201,7 @@ catalog/surrealkit.tool.yaml
154201

155202
Each file should describe a tool first.
156203

157-
Provider details belong under the specific tool version they support.
204+
Capabilities, author, publisher, versions, and provider offers belong inside the tool entry as metadata.
158205

159206
### `packages/`
160207

@@ -170,8 +217,7 @@ to:
170217

171218
```text
172219
Tool = catalog item
173-
Tool Version = versioned contract
174-
MCP server = provider offer for one or more tool versions
220+
MCP server = provider offer metadata under a tool version
175221
```
176222

177223
Recommended package structure:
@@ -188,7 +234,7 @@ packages/<provider-name>/
188234

189235
## MCP provider model
190236

191-
An MCP server package should declare which tool versions it provides:
237+
An MCP server package should declare which tools it provides:
192238

193239
```yaml
194240
provider_id: filesystem-mcp-server
@@ -280,7 +326,7 @@ Migrate them in place:
280326
1. Identify the tools exposed by each provider package.
281327
2. Identify capabilities implemented by each tool.
282328
3. Add one .tool.yaml catalog entry per tool.
283-
4. Add versions under each tool.
329+
4. Add capability, author, publisher, and version metadata under each tool.
284330
5. Add provider offers under each version.
285331
6. Add provider.yaml only for package/build/runtime metadata.
286332
7. Mark tool risk, approval requirements, auth, pricing, license, and support metadata where known.
@@ -295,13 +341,13 @@ Agent-Skills
295341
uses tools as executable capabilities
296342
297343
Agent-Graph
298-
maps tools, capabilities, providers, versions, permissions, and invocations
344+
maps tools, capabilities, authors, publishers, versions, providers, permissions, and invocations
299345
300346
Agent-Grammar
301-
validates tool, capability, version, and provider metadata
347+
validates tool metadata
302348
303349
Agent-Seed
304-
seeds default platform tool/capability records
350+
seeds default platform tool records
305351
306352
Agent-Review
307353
reviews high-risk tools before publication/use
@@ -310,18 +356,21 @@ Agent-Review
310356
## Rule
311357

312358
```text
359+
Tool
360+
= primary catalog object
361+
313362
Capability
314-
= semantic ability
363+
= semantic ability metadata
315364
316-
Tool
317-
= catalog product implementing capabilities
365+
Author
366+
= creator/maintainer metadata
318367
319-
Tool Version
320-
= versioned contract
368+
Publisher
369+
= catalog publishing/curation metadata
321370
322-
Provider Offer
323-
= access path for a specific tool version
371+
Version
372+
= compatibility metadata
324373
325-
MCP Server
326-
= provider type, not the tool itself
374+
Provider Offer
375+
= access path metadata for a version
327376
```

0 commit comments

Comments
 (0)