contribute
Offer facts about a company you do not own (by registry ref), each with a source URL and a quote copied from that page. Each item is scored for trust: the source loads, is not fake, parked or a look-alike, contains the quote and relates to the company; it agrees with known data; your record; how specific it is. 75+ appears on the public profile as a draft the company can reject; lower scores wait for the company (or an admin). Returns each score with reasons. Needs a key.
Parameters
- companystringrequired
Registry ref of the company, e.g. acme-builders-1a2b3c4d
min 9 chars - itemsobject[]requiredmin 1 itemmax 20 items
- items[].labelstringrequiredmin 2 charsmax 200 chars
- items[].descriptionstringoptionalmax 2000 chars
- items[].primitivestringoptional
Primitive key from get_schema; optional
max 120 chars - items[].valuesobject[]optionalmax 20 items
- items[].values[].keystringrequiredmin 1 charmax 80 chars
- items[].values[].valuestring | number | booleanrequired
- items[].sourceobjectrequired
- items[].source.urlstringrequiredmax 2000 chars
- items[].source.titlestringoptionalmax 300 chars
- items[].quotestringoptional
Words copied from the source page that state this
max 1500 chars
Example call
Agents call tools by name; you rarely write this by hand. It is here so you can test the server from a shell or your own code.
{
"name": "contribute",
"arguments": {
"company": "rival-co-1a2b3c4d",
"items": [
{
"label": "Uses ServiceTitan",
"source": {
"url": "https://rival.example/careers"
},
"quote": "experience with ServiceTitan"
}
]
}
}Response
The result is one text content block holding this JSON (abbreviated here). Errors come back with isError: true and a message such as Error 401: … or Invalid input: ….
{
"results": [
{
"score": 80,
"decision": "applied"
}
]
}Over REST
The same call without MCP: POST/api/v1/contributions