MCP Tools for the Repository
The Repository group is the largest group of the MCP Endpoint. Its tools read the whole Repository Model (Systems, Services, Contracts, Endpoints, Message Types, Domains, BPMs, and the monitored Resources), search inside documents, and are the only tools that write Articles, Snippets, and Templates. The group is selected by default in the AI Assistant.
- ✅ 73 tools: 61 read, 8 write, 4 delete
- ✅ Soft Delete with
restore_document, so an AI mistake can be undone - ✅
search_contentfinds where something is documented, with links
The MCP Tool Reference explains the OAuth scopes, the paging rules, and the other groups. The tools that build profile-based Articles are in Documentation Tools.
Understanding the Scopes in This Group
| Scope | Tools |
|---|---|
mcp:repository.read |
Every read tool on this page |
mcp:repository.write |
create_article, create_snippet, create_template, update_article, update_snippet, update_template, duplicate_article, restore_document |
mcp:repository.delete |
delete_article, delete_snippet, delete_template, delete_document_profile |
The delete tools are Soft Deletes: the document goes to the deleted list, and restore_document brings it back, like Restore in the Web Client. Only the Web Client permanently deletes a document (see Two delete models).
Inputs are camelCase, and take and skip follow the common paging rules. A list tool that is filtered by another entity, such as list_services_by_system, also takes take and skip.
Articles, Snippets, and Templates (26)
Knowledge base Articles, Snippets, and Templates are stored the same way and told apart by documentType: 0 Article, 1 Snippet, 2 Template. Tools named after Articles handle all three kinds unless you pass documentType.
| Tool | Kind | What it does | Inputs |
|---|---|---|---|
get_article_by_slug |
Read | One Article, Snippet, or Template by slug (active, not deleted) | slug |
get_article_by_title |
Read | One Article, Snippet, or Template by exact title (active, not deleted) | title |
get_article_markdown |
Read | An Article, Snippet, or Template as Markdown | slug |
get_snippet |
Read | One Snippet by exact title (active, not deleted) | title |
get_template |
Read | One Template by exact title (active, not deleted) | title |
list_article_tags |
Read | The Tags used on Articles (active, not deleted) | take, skip |
list_articles |
Read | Articles, Snippets, and Templates, page by page (active, not deleted) | take, skip, documentType |
list_articles_by_custom_metadata |
Read | Documents whose Custom Metadata matches a name and a value fragment | customMetaDataName, valueContains, take, skip, documentType |
list_articles_by_tag |
Read | Documents with one Tag; get the id from list_article_tags |
tagId, take, skip, documentType |
list_snippets |
Read | Snippets, page by page (active, not deleted) | take, skip |
list_templates |
Read | Templates, page by page (active, not deleted) | take, skip |
search_articles |
Read | Documents by part of the title (active, not deleted) | term, take, skip, documentType |
search_snippets |
Read | Snippets by part of the title (active, not deleted) | term, take, skip |
search_templates |
Read | Templates by part of the title (active, not deleted) | term, take, skip |
create_article |
Write | Creates an Article, Snippet, or Template | request (see below), plus documentType |
create_snippet |
Write | Creates a Snippet | request |
create_template |
Write | Creates a Template | request |
update_article |
Write | Updates an Article, Snippet, or Template, addressed by slug | request (see below) |
update_snippet |
Write | Updates a Snippet, addressed by slug; refuses the slug of another kind | request |
update_template |
Write | Updates a Template, addressed by slug; refuses the slug of another kind | request |
duplicate_article |
Write | Copies an Article, Snippet, or Template, found by slug, as a clone with a new title | slug and the new title |
restore_document |
Write | Restores a deleted Article, Snippet, Template, or Document Profile | slug |
delete_article |
Delete | Soft-deletes an Article | slug |
delete_snippet |
Delete | Soft-deletes a Snippet | slug |
delete_template |
Delete | Soft-deletes a Template | slug |
delete_document_profile |
Delete | Soft-deletes a Document Profile with its part definitions | slug |
The request Object for Create and Update
| Field | Create | Update |
|---|---|---|
title |
Required | Optional |
slug |
Optional | Required: the document to change |
newSlug |
— | Optional: renames the slug |
content, contentType (0 or 1) |
Optional | Optional |
isActive, startDate, endDate |
Optional | Optional; an omitted date keeps its value, and a date can't be cleared over MCP |
tagIds, customValueIds |
Optional: Tags and Custom Metadata values by id, not by name | Optional |
documentType |
create_article only |
update_article only; it must match the stored kind, because a document is never converted |
Content Search (1)
New 7.12 Use search_content when you want to know where something is documented: it searches the text of Articles, Snippets, Templates, and Document Profiles, like Search content in the Web Client (see Content Search).
| Tool | What it does | Inputs |
|---|---|---|
search_content |
Finds words, a phrase, or a regular expression inside documents, with excerpts and a link to each document | query, plus the optional inputs below |
| Input | Default | Meaning |
|---|---|---|
query |
Required | The text to find |
mode |
Words |
Words, Phrase, or Regex; a regular expression is stopped after one second |
documentTypes |
All four | Comma-separated: 0 Article, 1 Snippet, 2 Template, 3 Document Profile. Empty means all four, unlike the Web Client, which starts with Articles and Snippets |
matchCase, wholeWord |
false |
Case-sensitive search; whole words only (letters, digits, and _ are word characters) |
searchTitles, searchContent |
true |
Search the titles and slugs; search the content |
searchMetadata |
false |
Search the Tags and the Custom Metadata values |
includeIcons, includeImages, includeFiles |
true |
Also match inside icon, image, and file references |
includeDeleted |
false |
Also search deleted documents |
take |
20 |
Documents per call, from 1 to 50 |
skip |
0 |
Documents to skip; paging goes by whole pages of take |
The result holds query, mode, total, skip, take, truncated, a note that says when a limit cut the result, and items. Each item is one document:
| Field | Meaning |
|---|---|
articleId, documentType, documentKind, title, slug |
Which document matched |
path |
The document's reader page, root-relative, for example /Repository/Article/25446. The tool asks the assistant to link each document as [title](path), so the AI Assistant answers with links |
changed, isShipped, isProfileBased, isDeleted, tags |
The document's state and Tags |
matchCount, titleMatched |
How many matches the document has, and whether the title matched |
matches |
At most 5 matches, each with field, fieldName, sectionKey, headingPath, anchor, line, excerpt, and matchedText |
The documents come best match first, and the ContentSearchMaxResults System Parameter limits how many one search finds.
Repository Entities (46)
All of these read. The get_*_by_name tools want the exact name, the search_* tools part of a name, and the list_* tools return everything, page by page.
| Entity | Tools | Inputs |
|---|---|---|
| Systems (5) | get_system_by_name, get_system_with_services (with its Services), explain_system (a deep drill-down), list_systems, search_systems |
name / take, skip / term, take, skip |
| Services (6) | get_service_by_name, explain_service (a deep drill-down, with its Endpoints and Contracts), list_services, list_services_by_integration, list_services_by_system, search_services |
name / integrationName or systemName, plus take, skip |
| Contracts (5) | get_contract_by_name, list_contracts, list_contracts_by_service, list_contracts_by_system, search_contracts |
name / serviceName or systemName, plus take, skip |
| Endpoints (3) | get_end_point_by_name, list_end_points, search_end_points |
name / take, skip / term, take, skip |
| Message Types (3) | get_message_type_by_name, list_message_types, search_message_types |
name / take, skip / term, take, skip |
| Domains (3) | get_domain_by_name, list_domains, search_domains |
name / take, skip / term, take, skip |
| BPMs (3) | get_bpm_by_name, list_bpms, search_bpms (active, not deleted) |
name / take, skip / term, take, skip |
| Custom Fields (3) | get_custom_field_by_name, list_custom_fields, search_custom_fields |
name / take, skip / term, take, skip |
| Custom Metadata (3) | get_custom_metadata_by_name, list_custom_metadata, search_custom_metadata (the definitions) |
name / take, skip / term, take, skip |
| Resources (5) | get_resource_by_name, list_resources, list_resources_by_application, list_resources_by_category, search_resources (monitored Resources) |
name / applicationName or categoryName, plus take, skip |
| Applications (4) | get_application_by_name, get_application_with_resources (with its monitored Resources), list_applications, search_applications |
name / take, skip / term, take, skip |
| Categories (3) | get_category_by_name, list_categories, search_categories (the Resource Categories) |
name / take, skip / term, take, skip |
There are no MCP tools that create or change Repository entities such as Systems or Services; use the Web Client or the Web API for that. The Integration tools are in their own group, see Monitoring and Logging Tools.
Next Steps
- MCP Tool Reference - Scopes, paging rules, and the other groups
- Documentation Tools - Build profile-based Articles
- Choose Your Tools - Pick groups within the limit of 128 tools