Skip to content

MCP tools

Fabric exposes nine tools over MCP. Three work with memory, four with coding standards, one with assessment results, and one reports health.

In Claude Code the tools appear with the prefix mcp__plugin_anthara_anthara-fabric__. For example, search_memories is mcp__plugin_anthara_anthara-fabric__search_memories.

For how to connect and sign in, see Fabric MCP.

Tool What it does Changes data
add_private_memory Saves a fact to your own memory. Yes
add_shared_memory Saves a fact to the organization’s shared memory. Yes
search_memories Finds facts in private and shared memory. No
get_standards Returns every standard that applies to a repository. No
list_standard_packs Lists the packs that apply to a repository. No
get_relevant_standards Returns the standards most relevant to one task. No
find_similar_standards Finds existing rules that resemble a described rule. No
get_repo_scan Returns a repository’s latest assessment. No
get_status Reports whether Fabric’s databases respond. No

Five tools take raw_remote_url. Pass the output of this command, unchanged:

Terminal window
git remote get-url origin

Fabric accepts SSH and HTTPS addresses from GitHub, GitLab, Bitbucket, and Azure DevOps, and works out the repository name itself. Never pass the literal text ORG_WIDE.

Saves a fact that only you can read back.

Argument Required Rules
data Yes The fact. 1 to 51,200 characters.
reference_time No When the fact became true. Defaults to now. A time without a timezone is read as UTC.
name No A short label. Up to 1,000 characters. Defaults to the start of data.

Returns task_id, scope, org_id, and fact_preview. Fabric queues the write and extracts facts in the background, so a new fact is not searchable at once.

{
"data": "Priya prefers Python 3.12 with type hints for new services."
}

Saves a fact that everyone connected to the memory group can read. It takes the same arguments as add_private_memory and returns the same fields.

The plugin makes Claude Code ask for your approval before each call. The memory group comes from the address you are connected to. It cannot be passed as an argument.

{
"data": "The payments team deploys to production with ArgoCD from the ops-cluster namespace.",
"reference_time": "2026-03-01T00:00:00Z",
"name": "Payments deploy process"
}

Returns one list of facts from private memory, shared memory, or both.

Argument Required Rules
query No What to look for. 1 to 1,000 characters. Leave it out to get the facts from the newest memories.
scope No private, shared, or all. Defaults to all.
limit No 1 to 100. Defaults to 10.
as_of No A point in time. Returns facts as they stood then, including facts replaced since. Only allowed together with query.

Returns facts, a list. Each fact has uuid, fact, status, valid_at, and scope. The status is active, invalid, or expired. With a query and no as_of, only active facts are returned.

The list has no relevance score. Read the whole list.

{
"query": "ArgoCD production deploy",
"scope": "shared",
"limit": 5
}

Returns every standard that applies to a repository: the org-wide rules together with the rules from packs applied to that repository.

Argument Required Rules
raw_remote_url Yes See above.

Returns resolved_repo, total, and standards. Each standard has scope and rule. The scope is org-wide or the repository’s full name.

{
"raw_remote_url": "git@github.com:acme/claims-api.git"
}

Lists the packs that apply to a repository. Call it before get_relevant_standards to learn which words and tags the packs use.

Argument Required Rules
raw_remote_url Yes See above.

Returns packs. Each pack has name, description, and tags. The tags list can be empty.

{
"raw_remote_url": "git@github.com:acme/claims-api.git"
}

Returns the standards that best match one task, most relevant first. Use it in place of get_standards when you know what the task is.

Argument Required Rules
raw_remote_url Yes See above.
task Yes An object. Its fields are in the next table.
top_k No The most standards to return. 1 to 100. Defaults to 30.

Fields of task:

Field Required Meaning
task_type Yes One of feature, bugfix, refactor, test, docs, infra, migration.
description Yes What the task does, written like a search query. 1 to 2,000 characters.
surface_area No The language, framework, and layers the change touches. Reuse the tags from list_standard_packs.
data_handled No Kinds of sensitive data the change touches, such as phi or credentials.
user_facing No true when end users see the result. Defaults to false.
external_io No true when the change calls outside services or does file I/O. Defaults to false.
file_paths No Paths or globs the change is expected to touch.

Returns resolved_repo, total_available, total_returned, retrieval_mode, embedding_coverage, and standards. Each standard has scope, rule, and pack_name.

Two rules decide what comes back:

  • A standard tagged with a value you list in data_handled is always included.
  • A standard that matches nothing in the task is left out. Fewer results than top_k, or none, is not an error.

retrieval_mode is hybrid when both keyword and meaning-based search took part. It is bm25_only when only keyword search did.

{
"raw_remote_url": "git@github.com:acme/claims-api.git",
"task": {
"task_type": "feature",
"description": "Add POST /auth/logout that revokes the JWT server-side and writes an audit log row with the user id.",
"surface_area": ["typescript", "api", "auth"],
"data_handled": ["credentials"],
"user_facing": false,
"external_io": false,
"file_paths": ["src/auth/**"]
},
"top_k": 20
}

Searches every rule in every pack for rules close to one you describe. It includes packs that are applied to no repository. Use it to check whether a rule already exists before you add one.

Argument Required Rules
description Yes The rule to look for. 1 to 2,000 characters.
raw_remote_url No When given, each match says whether the rule is in effect for that repository.
top_k No 1 to 20. Defaults to 10.

Returns resolved_repo, retrieval_mode, and matches. Each match has rule_id, rule, pack_name, pack_org_wide, in_effect, and rank. in_effect is null when you leave out raw_remote_url.

{
"description": "Always validate request bodies with a schema before use",
"raw_remote_url": "git@github.com:acme/claims-api.git"
}

Returns the latest assessment for a repository, as the signed-in person sees it.

Argument Required Rules
raw_remote_url Yes See above.

Returns state, full_name, provider, repository, scan, and next_step_url.

state Meaning
ok The latest assessment finished. scan holds the result.
not_imported The repository is not in Anthara. next_step_url says where to import it.
never_scanned The repository is imported but has no assessment yet.
scan_in_progress An assessment is running.
scan_failed The latest assessment failed.
{
"raw_remote_url": "https://github.com/acme/claims-api.git"
}

Takes no arguments. Returns healthy, postgres, and graph. Each is true or false. healthy is true only when both databases respond.

{}