{"$schema":"https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json","version":"1.0","protocolVersion":"2025-06-18","serverInfo":{"name":"dveracity-semantic","title":"dVeracity Semantic API","version":"0.8.3","icons":[{"src":"https://dveracity.com/brand/dveracity-icon-512.png","mimeType":"image/png","sizes":["512x512"]}]},"description":"Check sustainability data before you rely on it. Validate emissions records against the Open Footprint standard, evaluate EU CBAM records and declarations against approved regulatory policies, map ERP and supplier fields onto Open Footprint, and query verified oil-and-gas emissions data (PPDM, OGMP 2.0 methane). Model lookups are free; validation and queries cost 1 credit ($0.01). Every result lists which checks ran and which did not.","documentationUrl":"https://api.dveracity.com/api/v1/semantic/manifest","iconUrl":"https://dveracity.com/dv_icon.png","transport":{"type":"streamable-http","endpoint":"/mcp"},"capabilities":{"tools":{"listChanged":true}},"authentication":{"required":true,"discovery":"anonymous","schemes":["oauth2","bearer"],"oauth2":{"protectedResourceMetadata":"https://api.dveracity.com/.well-known/oauth-protected-resource/mcp","authorizationServerMetadata":"https://api.dveracity.com/.well-known/oauth-authorization-server"}},"instructions":"Use dVeracity when a user needs sustainability or emissions data checked against a standard or regulation, needs Open Footprint model guidance, or asks about verified oil-and-gas emissions. Do not use it for general carbon-footprint calculation, emission-factor lookup or explaining GHG Protocol concepts. Start with ofp_models (free) for model questions, ofp_validate for payload checks, compliance_policies for regulatory checks.\n\ninitialize and tools/list are anonymous; each tool carries _meta.pricing. Every account-scoped tools/call needs OAuth (follow the WWW-Authenticate challenge) or X-Api-Key — the free ofp_* tools are free of charge but not anonymous. On a 402, follow offers[] or show checkoutUrl to your user instead of retrying.","tools":[{"name":"semantic_query","title":"Query verified emissions data","description":"Use this when a user asks a specific question about verified oil-and-gas emissions data, for example methane emissions for a site, company or period (PPDM, OGMP 2.0). Call semantic_templates first to see what the data can answer. Do not use for general climate questions. Costs 1 credit ($0.01).\n\nOn payment_required, follow offers[] or show checkoutUrl; do not retry the same call. Prefer a specific site, company or period.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"sessionId":{"type":"string"}},"required":["query"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["semantic:query"]}],"_meta":{"pricing":{"unit":"credit","amount":1,"usd":0.01},"idempotency":{"header":"Idempotency-Key","parameter":"_meta.idempotencyKey","maxLength":255}}},{"name":"semantic_templates","title":"Emissions data: question templates","description":"Use this when you want to see which kinds of questions the verified emissions data can answer, before calling semantic_query.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["semantic:templates"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"credits_balance","title":"Credit balance (deprecated)","description":"Deprecated: use billing_status, which also shows plan and free allowance. Removal planned for 0.9.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":[]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"list_standards","title":"List supported standards","description":"Use this when you need to see which sustainability data standards and versions validate_data can check, before calling it.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":[]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"validate_data","title":"Validate data against a named standard","description":"Use this when a user wants a payload checked against a standard other than Open Footprint; call list_standards first to see which are supported. For Open Footprint payloads use ofp_validate. Costs 1 credit ($0.01).\n\nOnly masterData or referenceData; call list_standards first.","inputSchema":{"type":"object","properties":{"standard":{"type":"string"},"version":{"type":"string"},"entityType":{"type":"string"},"schemaCategory":{"type":"string","enum":["masterData","referenceData"],"description":"masterData (default) or referenceData"},"data":{"type":"object","additionalProperties":{}}},"required":["standard","data"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:validate"]}],"_meta":{"pricing":{"unit":"credit","amount":1,"usd":0.01},"idempotency":{"header":"Idempotency-Key","parameter":"_meta.idempotencyKey","maxLength":255}}},{"name":"keri_identity","title":"Verified agent identity (vLEI)","description":"Use this when an organisation needs to confirm which verified legal entity and agent identity dVeracity is attributing calls to. Only relevant when vLEI identity is configured.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":[]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_models","title":"Open Footprint: list model domains","description":"Use this when a user is building an app, database or integration on the Open Footprint standard and needs to know what the model covers. Start here before any other ofp_ tool.\n\nThe response summary carries the served counts.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_search_entities","title":"Open Footprint: search entities","description":"Use this when you need the Open Footprint entity for a concept such as \"Scope 3 emissions\", \"facility\" or \"product footprint\". Do not use for emission factors or calculations.\n\nMatches entity names, descriptions and field names; use ofp_entity for the full definition.","inputSchema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":200},"domain":{"type":"string","maxLength":100},"limit":{"type":"integer","minimum":1,"maximum":500}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_entity","title":"Open Footprint: get entity definition","description":"Use this when you need one entity's fields, types, keys and relationships, for example to design a table or an API payload.\n\nPass domain when known: ambiguous names fail rather than guessing (ofp_models reports ambiguousNameCount).","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"domain":{"type":"string","maxLength":100}},"required":["name"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_sectors","title":"Open Footprint: list industry sectors","description":"Use this when a user asks which industries Open Footprint covers or whether a sector has a reference implementation.\n\nimplemented means a reference implementation exists; planned or placeholder means nothing is published.","inputSchema":{"type":"object","properties":{"axis":{"type":"string","enum":["esrs","sics","none"],"description":"esrs (reporting groups) or sics (implementations)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_sector","title":"Open Footprint: get sector","description":"Use this when you need one sector's classification, status and reference artifacts.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":100}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_policies","title":"Open Footprint: sector guardrails","description":"Use this when a user asks which validation rules apply to a sector's emissions records. Do not use for regulations; use compliance_policies.\n\ninputs lists the e-ledger fields each policy reads (e.g. co2e_kg, direction), not canonical Open Footprint names. published:false means no rules are published; do not invent guardrails.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":100}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"compliance_policies","title":"Regulatory checks: list policies","description":"Use this when a user needs data checked against a regulation, for example EU CBAM, to find the approved policy to run. Do not use for Open Footprint sector rules; use ofp_policies.\n\nReturns only APPROVED policies; drafts and rejected never appear. An empty list means none published, not that no obligations exist; never invent rules. Requires compliance:read.","inputSchema":{"type":"object","properties":{"framework":{"type":"string","minLength":1,"maxLength":100},"domain":{"type":"string","minLength":1,"maxLength":100},"include_retired":{"type":"boolean"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["compliance:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0,"plan_required":"vaas","plan_required_ref":"billing_plans#vaas"}}},{"name":"compliance_policy","title":"Regulatory checks: get policy","description":"Use this when you need the full rules, provenance and coverage of one approved regulatory policy.\n\nReturns Rego only when the source was retained; otherwise rego_unavailable: source_not_retained. A policy without Rego is not loaded into the engine; enforcement says whether its structured rules still run. Do not reconstruct the Rego. Requires compliance:read.","inputSchema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["compliance:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0,"plan_required":"vaas","plan_required_ref":"billing_plans#vaas"}}},{"name":"compliance_evaluate","title":"Regulatory checks: evaluate record or CBAM declaration","description":"Use this when a user wants an import record or an annual EU CBAM declaration (Reg. (EU) 2023/956) checked against an approved policy before filing. Do not use for carbon-footprint calculations or for regulations compliance_policies does not list.\n\nRuns the policy's regulation-derived Rego, not the generic OFP validator. The decision is passed, denied, unevaluable, not_applicable or error; an error is a refusal, never compliance, and error.code names it (policy_not_release_eligible, policy_no_rendered_checks, policy_no_faithful_checks, policy_coverage_inconsistent, policy_hash_mismatch, policy_hash_unverified). A pass covers only the encoded checks: read coverage.note. Requires the compliance:evaluate scope; every call counts against the plan limit. For an annual CBAM declaration set entity_type to cbam_declaration and send declaration + lines.","inputSchema":{"type":"object","properties":{"policy_id":{"type":"string","format":"uuid"},"entity_type":{"type":"string","minLength":1,"maxLength":50,"description":"carbon_measure (default) or cbam_declaration"},"entity":{"type":"object","additionalProperties":{}},"declaration":{"type":"object","additionalProperties":{}},"lines":{"type":"array","items":{"type":"object","additionalProperties":{}},"maxItems":500},"context":{"type":"object","additionalProperties":{}},"evidence":{"type":"array","items":{"type":"object","additionalProperties":{}},"maxItems":50,"description":"{kind, ref, sha256}; sha256 is 64 hex characters"}},"required":["policy_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["compliance:evaluate"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0,"plan_required":"vaas","plan_required_ref":"billing_plans#vaas"},"idempotency":{"header":"Idempotency-Key","parameter":"_meta.idempotencyKey","maxLength":255}}},{"name":"compliance_evaluation","title":"Regulatory checks: get stored result","description":"Use this when a user wants to retrieve or audit a previous regulatory evaluation by its id.\n\nOnly the caller who ran it can read it; another account's id answers not found. Requires compliance:read.","inputSchema":{"type":"object","properties":{"evaluation_id":{"type":"string","format":"uuid"}},"required":["evaluation_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["compliance:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0,"plan_required":"vaas","plan_required_ref":"billing_plans#vaas"}}},{"name":"compliance_policy_register","title":"Regulatory checks: what a policy covers","description":"Use this when a user asks which provisions of a regulation an evaluation actually checks and which it does not.\n\nShows which provisions are encoded and which are not: a pass on the encoded checks is not compliance with excluded provisions. Requires the compliance:read scope.","inputSchema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["compliance:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0,"plan_required":"vaas","plan_required_ref":"billing_plans#vaas"}}},{"name":"ofp_validate","title":"Validate data against Open Footprint","description":"Use this when a user wants an emissions or footprint record (JSON) checked against the Open Footprint model or a sector's guardrails before storing, exchanging or reporting it. Do not use for general data-quality questions without a payload. Costs 1 credit ($0.01).\n\nChecks structure, declared constraints, enum membership and calculations; with a sector, its guardrails. Always read `checked` and `checks_not_run` per call, and `schema.coverage.constraintsDeclared`, rather than assuming a range check ran. Not checked: undeclared ranges, unit coherence, live referential integrity, factor provenance. Never report a payload as compliant unless sector_policy is in `checked` and policy.outcome is passed. `schemaValid` is the structural verdict; `valid` is deprecated.","inputSchema":{"type":"object","properties":{"entity":{"type":"string","minLength":1,"maxLength":200},"domain":{"type":"string","maxLength":100},"payload":{"type":"object","additionalProperties":{}},"sector":{"type":"string","maxLength":100},"entityType":{"type":"string","maxLength":100,"description":"Guardrail record type, e.g. \"directEmission\""}},"required":["entity","payload"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:validate"]}],"_meta":{"pricing":{"unit":"credit","amount":1,"usd":0.01},"idempotency":{"header":"Idempotency-Key","parameter":"_meta.idempotencyKey","maxLength":255}}},{"name":"ofp_semantics","title":"Open Footprint: semantic codes for mapping","description":"Use this when mapping fields from SAP, another ERP or a supplier feed onto Open Footprint.\n\nA high fieldCount is a generic fallback; pass maxFieldCount (10 is a good start) for codes specific enough to align on.","inputSchema":{"type":"object","properties":{"maxFieldCount":{"type":"integer","minimum":1,"maximum":1000}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_semantic_code","title":"Open Footprint: fields for a semantic code","description":"Use this when you have a source-system field and need to find where it belongs in the Open Footprint model.\n\nCodes carried by more than ten fields are generic classifications; aligning to one asserts less than it appears.","inputSchema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":120,"description":"O-DEF code, e.g. \"ofp-sustainability:9.102_1.102\""}},"required":["code"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"ofp_model_provenance","title":"Open Footprint: model version","description":"Use this when a user asks which version of the Open Footprint standard they are designing against.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":["ofp:read"]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"billing_plans","title":"Plans and prices","description":"Use this when you need to know what dVeracity costs, what the free allowance covers, or which options to show the user after a payment-required response.\n\nIncludes credit packs, the per-credit price and the free allowance (anonymous).","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"noauth"}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"billing_status","title":"Account balance and plan","description":"Use this when a call was refused for credits or plan, to tell the user exactly what is missing.\n\nUse it after a 402 to tell your human exactly what is missing.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":[]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"billing_purchase","title":"Start a credit purchase (human pays)","description":"Use this when the user agrees to buy credits; it returns a link the user must complete.\n\nNo charge happens until a human completes the payment; do not retry the metered tool after a 402.","inputSchema":{"type":"object","properties":{"offer_id":{"type":"string","maxLength":64},"credit_pack":{"type":"string","enum":["1000","5000","10000"]}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":[]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}},{"name":"billing_subscribe","title":"Start a subscription (human approves)","description":"Use this when the user wants a membership; it returns a checkout link the user must complete.\n\nRecurring charges always need human approval; do not complete the checkout yourself. If the plan is not sold self-serve on this deployment, it returns selfServe:false with howToObtain and contactUrl — relay those to your operator instead of retrying.","inputSchema":{"type":"object","properties":{"plan":{"type":"string","enum":["api","enterprise"]}},"required":["plan"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"securitySchemes":[{"type":"oauth2","scopes":[]}],"_meta":{"pricing":{"unit":"credit","amount":0,"usd":0}}}],"resources":[],"prompts":[]}