Skip to content

dVeracity Semantic API

com.dveracity/semantic-mcpdveracity.comstreamable-httpv0.8.1Scanned

Natural-language queries over a verified emissions knowledge graph, plus standards validation

25 tools: 1 do something that can't be undone, 5 change things and 19 only read.

Tools: 0 delete, 1 irreversible, 5 write, 19 read.
  • Reads private data · 3
  • Reads text others write · 0
  • Can send data out · 0
  • 3 findings

Sign-in required, OAuth metadata published. Remote posture

Anlyon alternative

6 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

25 tools

Can't be undone 1Claude Code: ask
  • billing_purchaseStart a one-time credit purchase and return a checkoutUrl, plus a paymentLink when the deployment configures one.No findings

    Why it is in this group

    • The name "billing_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Start a one-time credit purchase and return a checkoutUrl, plus a paymentLink when the deployment configures one. No charge happens until a human completes the payment; show the URL to your operator. Prefer this over retrying the metered tool after a 402.

    Annotations the server declares

    • title: billing_purchase
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 5Claude Code: ask
  • billing_subscribeStart a membership subscription checkout and return only the checkoutUrl.No findings

    Why it is in this group

    • The name "billing_subscribe" says "subscribe": a word for a change.
    Description, as the server wrote it
    Start a membership subscription checkout and return only the checkoutUrl. Recurring charges always need human approval: do not complete the checkout yourself, and do not retry the metered tool until your operator confirms the plan is active.

    Annotations the server declares

    • title: billing_subscribe
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • compliance_evaluateExecute one named APPROVED compliance policy against one record and return the decision, the per-check results, the inputs the record lacked, remediation, the policy version and ha…1 finding

    Why it is in this group

    • The name "compliance_evaluate" says "evaluate": a word for a change.

    Findings

    • Info

      The description is 2,059 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...d the per-line results are stored in the same audit record with their record ids."

      What this check looks for
    Description, as the server wrote it
    Execute one named APPROVED compliance policy against one record and return the decision, the per-check results, the inputs the record lacked, remediation, the policy version and hash that decided, and the policy coverage. This runs that policy's regulation-derived Rego — not the generic OFP validator and not a fan-out over frameworks. Paid plans only; requires the compliance:evaluate scope, and every call counts against the plan limit. The decision is one of passed, denied, unevaluable (the record lacks inputs a check needs — supply them and retry), not_applicable (the CN code is outside Annex I) or error. An error is a refusal before a verdict: error.code names it, including policy_not_release_eligible, policy_no_rendered_checks, policy_no_faithful_checks, policy_coverage_inconsistent, policy_hash_mismatch and policy_hash_unverified. Do not treat an error as compliant. allow is true only for passed. The decision is the worst of the policy, data and evidence layers, and decision_basis.decided_by names the layer(s) that produced it: a policy whose checks all passed can still be denied by a data finding. A pass means the encoded checks passed: read coverage.note for the provisions the policy does not encode. Per-check outcome may be not_applicable when the check's trigger did not hold; that is not a met obligation. The result is stored as an audit record; retrieve it with compliance_evaluation. An annual CBAM declaration is evaluated by setting entity_type to "cbam_declaration" and sending declaration + lines instead of entity: every line runs through the record layers against the carbon_measure record it points at (record_id), then the declaration layer checks the de minimis (Reg (EU) 2023/956 Art 2a / Annex VII), the Art 6(1) 30 September deadline, the annual total, each line's quantity against its linked imports, the import year and duplicate customs references. Its decision is the worst line decision combined with the declaration findings, and the per-line results are stored in the same audit record with their record ids.

    Annotations the server declares

    • title: compliance_evaluate
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • compliance_policyOne APPROVED regulatory compliance policy in full: its Rego source, the structured rules the extractor produced, the record types and input fields the Rego reads, and provenance (s…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    One APPROVED regulatory compliance policy in full: its Rego source, the structured rules the extractor produced, the record types and input fields the Rego reads, and provenance (source regulation document, extraction model and confidence, approval time, policy hash). Paid plans only; requires the compliance:read scope. A draft id — or a row that never went through approval, such as a retired seeded stub — answers "not found" exactly like an unknown id. A policy approved before its source was retained is returned without Rego and says so (rego_unavailable: source_not_retained). Such a policy is NOT loaded into the policy engine; the response says in `enforcement` whether its structured validation rules are still evaluated. Do not reconstruct the Rego yourself.

    Annotations the server declares

    • title: compliance_policy
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • compliance_policy_registerThe published release register of one APPROVED compliance policy: every extracted provision with its legal reference, review verdict and disposition, the treatment rendered in the …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The published release register of one APPROVED compliance policy: every extracted provision with its legal reference, review verdict and disposition, the treatment rendered in the Rego (or why it was excluded), its status (enforced, attested, unsupported or informational), the fields it needs, and the approved hash, version and effective date. Use it to see what an evaluation actually covers and which provisions are NOT encoded — a pass on the encoded checks is not compliance with the excluded provisions. Paid plans only; requires the compliance:read scope.

    Annotations the server declares

    • title: compliance_policy_register
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_semantic_codeShow which canonical fields carry one O-DEF semantic code (free).1 finding

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "ofp_semantic_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "show": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Show which canonical fields carry one O-DEF semantic code (free). This is the reverse lookup a connector needs: given a field in a source system, find where in the Open Footprint model it belongs. Codes carried by more than ten fields are returned with an explicit caution — they are generic classifications, and aligning to one asserts far less than it appears to.

    Annotations the server declares

    • title: ofp_semantic_code
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 19Show 19 read-only tools
  • billing_plansShow dVeracity plans, credit packs, the per-credit price and the free-tier allowance (free, anonymous).No findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    Description, as the server wrote it
    Show dVeracity plans, credit packs, the per-credit price and the free-tier allowance (free, anonymous). Call this before a metered tool so you know what a credit buys and what checkout options you can show your human operator.

    Annotations the server declares

    • title: billing_plans
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • billing_statusShow this account's current plan, credit balance and remaining monthly free allowance (free).No findings

    Why it is in this group

    • The name "billing_status" says "status": a word for reading.
    Description, as the server wrote it
    Show this account's current plan, credit balance and remaining monthly free allowance (free). Use it after a 402 to tell your human exactly what is missing.

    Annotations the server declares

    • title: billing_status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • compliance_evaluationRetrieve one stored compliance evaluation by id — the audit record compliance_evaluate wrote.No findings

    Why it is in this group

    • The description's first verb is "retrieve": a word for reading.
    Description, as the server wrote it
    Retrieve one stored compliance evaluation by id — the audit record compliance_evaluate wrote. Only the caller who ran it can read it; another account's id answers "not found" exactly like an unknown one. Paid plans only; requires the compliance:read scope. Returns the decision, the stored result (per-check outcomes, missing inputs, remediation, policy version and hash), the evidence references and the input hash.

    Annotations the server declares

    • title: compliance_evaluation
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • compliance_policiesList APPROVED regulatory compliance policies — rules AI-extracted from a regulation (for example EU Green Bonds, CSRD/ESRS) and approved by a dVeracity admin.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List APPROVED regulatory compliance policies — rules AI-extracted from a regulation (for example EU Green Bonds, CSRD/ESRS) and approved by a dVeracity admin. This is the regulation-derived corpus; the Open Footprint sector guardrails from ofp_policies cite no regulation by design. Requires the VaaS plan or higher (VaaS, API or Enterprise); an Explorer account gets a 403 naming requiredTier, not data. Requires the compliance:read scope — a connector authorised before that scope existed must be re-authorised. Returns name, framework, domain, effective dates, the source regulation document, rule count and approval time per policy. Drafts and rejected policies are never returned. An empty list is a real answer (published:false with a reason): treat it as "none published", never as "no obligations exist", and do not invent rules to fill the gap.

    Annotations the server declares

    • title: compliance_policies
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • credits_balanceShow the remaining dVeracity API credit balance for this account (free).No findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    Description, as the server wrote it
    Show the remaining dVeracity API credit balance for this account (free).

    Annotations the server declares

    • title: credits_balance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • keri_identityShow this agent's verified vLEI identity (agent AID, Legal Entity LEI, authorized scopes) if KERI mode is configured — free.No findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    Description, as the server wrote it
    Show this agent's verified vLEI identity (agent AID, Legal Entity LEI, authorized scopes) if KERI mode is configured — free. In KERI mode every metered call is attributed to this identity in dVeracity's audit trail.

    Annotations the server declares

    • title: keri_identity
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • list_standardsList the sustainability data standards dVeracity can validate against (free).No findings

    Why it is in this group

    • The name "list_standards" says "list": a word for reading.
    Description, as the server wrote it
    List the sustainability data standards dVeracity can validate against (free).

    Annotations the server declares

    • title: list_standards
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_entityGet one canonical entity in full (free): fields with types and required flags, primary key, relationships, and the physical database table implementing it.Reads private dataNo findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "get" and "database": it reads databases.
    Description, as the server wrote it
    Get one canonical entity in full (free): fields with types and required flags, primary key, relationships, and the physical database table implementing it. Pass `domain` whenever you know it — many entity names are defined in more than one domain (Country is in four; the ofp_models summary reports the current count as ambiguousNameCount), and without it the call fails rather than guessing which one you meant.

    Annotations the server declares

    • title: ofp_entity
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_model_provenanceShow which snapshot of the Open Footprint standard this deployment serves (free): source commit, date, and entity/sector counts.Reads private dataNo findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "show" and "commit": it reads repositories.
    Description, as the server wrote it
    Show which snapshot of the Open Footprint standard this deployment serves (free): source commit, date, and entity/sector counts. Use it when you need to know how current the model you are designing against is.

    Annotations the server declares

    • title: ofp_model_provenance
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_modelsList the Open Footprint canonical model domains and which database dialects have published DDL (free).Reads private dataNo findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "database": it reads databases.
    Description, as the server wrote it
    List the Open Footprint canonical model domains and which database dialects have published DDL (free). Start here when building an app on the Open Footprint standard: it tells you what the model covers before you look up individual entities. The response summary carries the served counts (domains, entities, fields); they follow the vendored snapshot, which ofp_model_provenance identifies.

    Annotations the server declares

    • title: ofp_models
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_policiesGet a sector's policy guardrails as Rego source (free), with policies[].inputs listing the record types and input fields each policy reads — e-ledger fields such as co2e_kg and dir…No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get a sector's policy guardrails as Rego source (free), with policies[].inputs listing the record types and input fields each policy reads — e-ledger fields such as co2e_kg and direction, not canonical Open Footprint field names; a payload without them is reported unevaluable by ofp_validate. When a sector has no published guardrails this returns published:false with a reason — that is a real answer, not an error. Treat it as "no rules are published", never as "there are no constraints", and do not invent guardrails to fill the gap.

    Annotations the server declares

    • title: ofp_policies
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_search_entitiesSearch the canonical Open Footprint entities by concept (free).No findings

    Why it is in this group

    • The name "ofp_search_entities" says "search": a word for reading.
    Description, as the server wrote it
    Search the canonical Open Footprint entities by concept (free). Matches entity names, descriptions and field names. Use this to find the right entity before fetching its full definition with ofp_entity.

    Annotations the server declares

    • title: ofp_search_entities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_sectorGet one sector in full (free): its classification, status, reference artifacts and nested industries.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get one sector in full (free): its classification, status, reference artifacts and nested industries. Use ofp_sectors first to find the sector id.

    Annotations the server declares

    • title: ofp_sector
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_sectorsList industry sectors and their reference implementations (free).No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List industry sectors and their reference implementations (free). Each carries a status: "implemented" means a reference implementation exists, while "planned" or "placeholder" mean the sector is named in the taxonomy but nothing is published for it. Check the status before assuming a sector has content.

    Annotations the server declares

    • title: ofp_sectors
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_semanticsList the O-DEF semantic codes carried by the canonical model (free).No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List the O-DEF semantic codes carried by the canonical model (free). Use this when mapping fields from another system — SAP, an ERP, a supplier feed — onto Open Footprint: a code is the shared address two systems can align on. Every code comes with fieldCount, the number of canonical fields sharing it. A high count means a generic fallback that asserts almost nothing, so pass maxFieldCount (10 is a good start) to get only codes specific enough to be a real alignment target.

    Annotations the server declares

    • title: ofp_semantics
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • ofp_validateCheck a data payload against the canonical Open Footprint model and, when a sector is named, that sector's published Rego guardrails.1 finding

    Why it is in this group

    • The name "ofp_validate" says "validate": a word for reading.

    Findings

    • Info

      The description is 3,318 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...d as compliant unless sector_policy is in `checked` and policy.outcome is passed."

      What this check looks for
    Description, as the server wrote it
    Check a data payload against the canonical Open Footprint model and, when a sector is named, that sector's published Rego guardrails. Costs API credits per call. WHAT IT CHECKS: structure (required fields, primary key, declared types); the constraints the model declares (identifier patterns, enums, date formats, lengths); value ranges where the model declares a bound (a quantity outside the declared minimum or maximum is rejected; how many fields declare a bound moves with the vendored snapshot, so this check runs on some entities and not others — read `checked` and `schema.coverage.constraintsDeclared` on each response rather than assuming it ran); temporal consistency (a validity period whose end precedes its start is rejected); enum membership (a foreign key into a vocabulary that publishes its members is checked against that member set, so a well-formed identifier for a referent that does not exist is caught); calculation reproducibility (where the record carries a quantity, an emission factor value and a stated CO2e result, quantity × factor = result is reproduced within 1% and a record that contradicts itself is rejected; this tests arithmetic only — a self-consistent record is not thereby a correct one, because whether the factor suits this source and period is factor provenance and whether the quantity came from the meter it claims needs the data plane, and neither is checked); and, with a sector, the guardrails. WHAT IT DOES NOT CHECK in this release: value ranges on fields whose model declares no bound (an out-of-range quantity passes, reported per call as no_range_declared or no_numeric_fields), unit coherence, referential integrity (foreign keys are pattern-checked and, where a vocabulary publishes one, member-checked, but never resolved against live records), factor provenance, or materiality. The response says so per call: `checked` lists the checks that ran and `checks_not_run` lists every catalogued check that did not, each with a machine-readable `reason` and a `detail` explaining the gap. That reason vocabulary belongs to the validator and grows with it, so read the `reason` off the response rather than matching it against a fixed list. `schemaValid` is the structural verdict; `assuranceLevel` (schema-only | schema-and-value | schema-value-and-policy | full) is the depth earned. `valid` is deprecated (kept through 0.5.x, removed no earlier than 0.6.0) — it only ever covered the checks that ran. Every violation and warning carries severity (error | warning). Unknown fields are warnings, never violations, and each carries `didYouMean` candidates when the model has a plausible match; `schema.normalisations` discloses keys that resolved only through case and separator folding. `advisories` carries findings that are true of the payload but do not bear on its validity: today `deprecated_field`, severity warning, naming a `successor` when the model names one — an advisory never changes `schemaValid`. Guardrails report four distinct outcomes, never conflated: passed, denied, not_applicable (the rules do not cover this record type), or unevaluable (the payload lacks the e-ledger inputs the rules read, e.g. co2e_kg — listed in policy.missingInputs). Never report a payload as compliant unless sector_policy is in `checked` and policy.outcome is passed.

    Annotations the server declares

    • title: ofp_validate
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • semantic_queryAsk a natural-language question about verified emissions data (Open Footprint / PPDM / OGMP-methane knowledge graphs).No findings

    Why it is in this group

    • The name "semantic_query" says "query": a word for reading.
    Description, as the server wrote it
    Ask a natural-language question about verified emissions data (Open Footprint / PPDM / OGMP-methane knowledge graphs). Costs API credits per call; on payment_required, follow offers[] or show checkoutUrl to your operator — do not retry the same call. Prefer specific questions (a site, a company, a time range) over broad ones.

    Annotations the server declares

    • title: semantic_query
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • semantic_templatesList the query templates the semantic layer supports (free).No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List the query templates the semantic layer supports (free). Useful to learn what kinds of questions the knowledge graph can answer before spending credits on semantic_query.

    Annotations the server declares

    • title: semantic_templates
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • validate_dataValidate a data payload against a supported sustainability standard (Validation-as-a-Service).No findings

    Why it is in this group

    • The name "validate_data" says "validate": a word for reading.
    Description, as the server wrote it
    Validate a data payload against a supported sustainability standard (Validation-as-a-Service). Costs API credits per call. Use list_standards first to see supported standards and versions.

    Annotations the server declares

    • title: validate_data
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.

Reads private data3
Reads files, mail, messages, databases, secrets, calendars or repositories.
Reads text others write0
Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Remote posture

What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.

Sign-in required, OAuth metadata published

Looked at Oct 29, 2026, 21:33 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.

Reachable
yes
HTTP status of an anonymous initialize
401
tools/list served without credentials
no
Tools that change things, listed without credentials
0
Protocol version
not observed
WWW-Authenticate on 401
yes
resource_metadata in WWW-Authenticate
https://api.dveracity.com/.well-known/oauth-protected-resource/mcp
RFC 9728 protected resource metadata
https://api.dveracity.com/.well-known/oauth-protected-resource/mcp
Authorization servers
https://api.dveracity.com/
Legacy HTTP+SSE transport
no
Dynamic client registration
yes
Client ID metadata documents
no

Findings

Matches of fixed checks, with the text they matched.

1 warn2 info
  • The server marks "ofp_semantic_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "show": a word for reading.

    What this check looks for
  • The description is 2,059 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...d the per-line results are stored in the same audit record with their record ids."

    What this check looks for
  • The description is 3,318 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...d as compliant unless sector_policy is in `checked` and policy.outcome is passed."

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 0.8.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http semantic https://api.dveracity.com/mcp
claude mcp add --transport http semantic https://api.dveracity.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__semantic__semantic_query",
      "mcp__semantic__semantic_templates",
      "mcp__semantic__credits_balance",
      "mcp__semantic__list_standards",
      "mcp__semantic__validate_data",
      "mcp__semantic__keri_identity",
      "mcp__semantic__ofp_models",
      "mcp__semantic__ofp_search_entities",
      "mcp__semantic__ofp_entity",
      "mcp__semantic__ofp_sectors",
      "mcp__semantic__ofp_sector",
      "mcp__semantic__ofp_policies",
      "mcp__semantic__compliance_policies",
      "mcp__semantic__compliance_evaluation",
      "mcp__semantic__ofp_validate",
      "mcp__semantic__ofp_semantics",
      "mcp__semantic__ofp_model_provenance",
      "mcp__semantic__billing_plans",
      "mcp__semantic__billing_status"
    ],
    "ask": [
      "mcp__semantic__compliance_policy",
      "mcp__semantic__compliance_evaluate",
      "mcp__semantic__compliance_policy_register",
      "mcp__semantic__ofp_semantic_code",
      "mcp__semantic__billing_purchase",
      "mcp__semantic__billing_subscribe"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as semantic. Review it before you use it.

Capability tags behind 3 rules
  • mcp__semantic__ofp_models private-data
  • mcp__semantic__ofp_entity private-data
  • mcp__semantic__ofp_model_provenance private-data

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.dveracity/semantic-mcp/verify?hash=8f160159ca72eb1a4923c0f15b2d6e9bdf510441f19fda319e494e6f211a1a70" | jq -e '.changed == false'

Pinned hash 8f160159ca72, from Nov 1, 2026, 14:17 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.dveracity/semantic-mcp/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.dveracity/semantic-mcp
[![anlyon.dev](https://anlyon.dev/badge/com.dveracity/semantic-mcp.svg)](https://anlyon.dev/servers/com.dveracity/semantic-mcp)

Source: MCP Registry · repository. Synced Nov 1, 2026, 14:17 UTC.