Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Validate emissions data against Open Footprint, check EU CBAM records, query verified methane data
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
DVERACITY_API_KEY, DVERACITY_API_URL, DVERACITY_KERI_AID, DVERACITY_KERI_PRESENTATIONค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://api.dveracity.com/mcpเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"semantic": {
"command": "npx",
"args": [
"-y",
"@dveracity/semantic-mcp"
],
"env": {
"DVERACITY_API_KEY": "ใส่ค่าของคุณ",
"DVERACITY_API_URL": "ใส่ค่าของคุณ",
"DVERACITY_KERI_AID": "ใส่ค่าของคุณ",
"DVERACITY_KERI_PRESENTATION": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http semantic https://api.dveracity.com/mcpclaude mcp add semantic --env DVERACITY_API_KEY='ใส่ค่าของคุณ' --env DVERACITY_API_URL='ใส่ค่าของคุณ' --env DVERACITY_KERI_AID='ใส่ค่าของคุณ' --env DVERACITY_KERI_PRESENTATION='ใส่ค่าของคุณ' -- npx -y @dveracity/semantic-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"semantic": {
"url": "https://api.dveracity.com/mcp"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"semantic": {
"command": "npx",
"args": [
"-y",
"@dveracity/semantic-mcp"
],
"env": {
"DVERACITY_API_KEY": "ใส่ค่าของคุณ",
"DVERACITY_API_URL": "ใส่ค่าของคุณ",
"DVERACITY_KERI_AID": "ใส่ค่าของคุณ",
"DVERACITY_KERI_PRESENTATION": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"semantic": {
"type": "http",
"url": "https://api.dveracity.com/mcp"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"semantic": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dveracity/semantic-mcp"
],
"env": {
"DVERACITY_API_KEY": "ใส่ค่าของคุณ",
"DVERACITY_API_URL": "ใส่ค่าของคุณ",
"DVERACITY_KERI_AID": "ใส่ค่าของคุณ",
"DVERACITY_KERI_PRESENTATION": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://api.dveracity.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
DVERACITY_API_URL envDVERACITY_KERI_AID envDVERACITY_KERI_PRESENTATION envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 6 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
semantic_queryUse 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. On payme
semantic_templatesUse this when you want to see which kinds of questions the verified emissions data can answer, before calling semantic_query.
credits_balanceDeprecated: use billing_status, which also shows plan and free allowance. Removal planned for 0.9.
list_standardsUse this when you need to see which sustainability data standards and versions validate_data can check, before calling it.
validate_dataUse 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. Only masterData or referenceData; call list_standards first.
keri_identityUse 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.
ofp_modelsUse 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. The response summary carries the served counts.
ofp_search_entitiesUse 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. Matches entity names, descriptions and field names; use ofp_entity for the full definition.
ofp_entityUse this when you need one entity's fields, types, keys and relationships, for example to design a table or an API payload. Pass domain when known: ambiguous names fail rather than guessing (ofp_models reports ambiguousNameCount).
ofp_sectorsUse this when a user asks which industries Open Footprint covers or whether a sector has a reference implementation. implemented means a reference implementation exists; planned or placeholder means nothing is published.
ofp_sectorUse this when you need one sector's classification, status and reference artifacts.
ofp_policiesUse this when a user asks which validation rules apply to a sector's emissions records. Do not use for regulations; use compliance_policies. inputs lists the e-ledger fields each policy reads (e.g. co2e_kg, direction), not canonical Open Footprint names. published:false means no
compliance_policiesUse 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. Returns only APPROVED policies; drafts and rejected never appear. An empty list means none publishe
compliance_policyUse this when you need the full rules, provenance and coverage of one approved regulatory policy. Returns 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 str
compliance_evaluateUse 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. Runs the policy's regulation-deri
compliance_evaluationUse this when a user wants to retrieve or audit a previous regulatory evaluation by its id. Only the caller who ran it can read it; another account's id answers not found. Requires compliance:read.
compliance_policy_registerUse this when a user asks which provisions of a regulation an evaluation actually checks and which it does not. Shows 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.
ofp_validateUse 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. Checks structure, declared constraints
ofp_semanticsUse this when mapping fields from SAP, another ERP or a supplier feed onto Open Footprint. A high fieldCount is a generic fallback; pass maxFieldCount (10 is a good start) for codes specific enough to align on.
ofp_semantic_codeUse this when you have a source-system field and need to find where it belongs in the Open Footprint model. Codes carried by more than ten fields are generic classifications; aligning to one asserts less than it appears.
ofp_model_provenanceUse this when a user asks which version of the Open Footprint standard they are designing against.
billing_plansUse this when you need to know what each dVeracity plan includes or what the free allowance covers. Show dVeracity plans, what each plan includes and the free-tier allowance.
billing_statusUse this when a call was refused for credits or plan, to tell the user exactly what is missing. Use it after a 402 to tell your human exactly what is missing.
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน dveracity.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 311 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 23 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: DVERACITY_API_KEY
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.8.3) เข้า registry 3 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Apify MCP Server
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Gives any MCP-capable AI agent (Claude Code, Cursor, custom agents) metered access to the dVeracity Semantic API — natural-language queries over the verified-emissions knowledge graph (Open Footprint / PPDM / OGMP-methane) — and VaaS standards validation.
dvrc_…): POST /api/v1/api-keys (or the dashboard)POST /api/v1/vaas/credits/purchase (or ask the agent to use billing_purchase)The machine-readable service contract lives at GET /api/v1/semantic/manifest (public, no auth).
From this directory: npm install
claude mcp add dveracity \
-e DVERACITY_API_KEY=dvrc_yourkey \ -- node /path/to/dVE/mcp/semantic-mcp/index.js
{
"mcpServers": { "dveracity": { "command": "node", "args": ["/path/to/dVE/mcp/semantic-mcp/index.js"], "env": { "DVERACITY_API_KEY": "dvrc_yourkey" } } } }
Optional: DVERACITY_API_URL overrides the API base URL (defaults to prod).
If the agent holds a dVeracity Agent Authorization credential (an ACDC issued by its Legal Entity, chained to the Legal Entity's vLEI — see elm/docs/VLEI_AGENT_TOKENS_DESIGN.md), set:
DVERACITY_KERI_AID=<the agent's AID (credential issuee)>
DVERACITY_KERI_PRESENTATION=/path/to/agent-credential.cesr # self-contained CESR
The server then authenticates the agent by verifiable presentation (challenge → exchange → 1-hour session, refreshed transparently) and attaches X-Keri-Session to every call: the API key keeps carrying billing, the KERI session adds verified identity — every metered call is attributed to the agent AID and Legal Entity LEI in dVeracity's audit trail. The keri_identity tool (free) shows the active identity. Scope denials (a credential that doesn't carry e.g. semantic:query) surface as actionable errors naming the carried scopes. Signify-based nonce signing is a planned enhancement.
| Tool | Cost | What it does |
|---|---|---|
semantic_query | credits | Natural-language question over the verified-emissions knowledge graph |
semantic_templates | free | Catalog of supported query templates |
credits_balance | free | Remaining credit balance |
list_standards | free | Standards VaaS can validate against |
validate_data | credits | Validate a payload against a supported standard |
keri_identity | free | This agent's verified vLEI identity, when KERI mode is configured |
Every tool definition carries _meta.pricing: { "unit": "credit", "amount": , "usd": }, with amount 0 for a free tool. A plan-gated tool also carries "plan_required": " " — 0 credits on compliance_policies or compliance_evaluate means "included in the VaaS plan", not "free for any account".
| Tool | Cost | What it does |
|---|---|---|
billing_plans | free | Plans, credit packs, per-credit price and the free allowance (anonymous on the hosted endpoint) |
billing_status | free | This account's plan, balance and remaining free allowance |
billing_purchase | free | One-time credit checkout: returns a checkoutUrl for a human, plus a paymentLink when the deployment configures one |
billing_subscribe | free | Membership checkout: returns checkoutUrl only; recurring charges need human approval |
Design-time tools for building an application on the Open Footprint standard. Reading the model is free; only the check at the end is metered.
| Tool | Cost | What it does |
|---|---|---|
ofp_models | free | The model domains (nine as of openfootprint b60a24e), and which database dialects have published DDL |
ofp_search_entities | free | Search the canonical entities (262 entries as of b60a24e) by name, description or field |
ofp_entity | free | One entity in full: fields, types, keys, relationships, physical table |
ofp_sectors | free | Industry sectors, each with a status |
ofp_sector | free | One sector, with its reference artifacts |
ofp_policies | free | A sector's Rego guardrails, or an explicit "none published" |
compliance_policies | paid plan | Approved regulatory compliance policies (rules extracted from a regulation, admin-approved); never drafts |
compliance_policy | paid plan | One approved policy: Rego, extracted rules, inputs, provenance |
compliance_policy_register | paid plan | The published release register: every provision, its legal reference, review status and why it is or is not enforced |
compliance_evaluate | paid plan | Execute one named approved policy against a record: four-valued decision, per-check results, missing inputs, remediation, coverage. Stores an audit record |
compliance_evaluation | paid plan | Read back one stored evaluation — the caller's own only |
ofp_validate | credits | Check a payload against the model and, optionally, sector guardrails |
ofp_semantics | free | O-DEF semantic codes, for aligning another system's fields onto the model |
ofp_semantic_code | free | Which canonical fields carry one code — the reverse lookup a connector needs |
ofp_model_provenance | free | Which snapshot of the standard this deployment serves |
Two behaviours are deliberate and worth knowing before you build against them.
Ambiguous entity names fail rather than resolve. dozens of entity names (the ofp_models summary reports the count as ambiguousNameCount) are defined in more than one domain — Country is in four. ofp_entity without a domain returns an error listing the candidates instead of picking one. Pass domain whenever you know it.
Semantic codes vary in usefulness. Most canonical fields carry an O-DEF code, but a code shared by many fields is a generic classification, and aligning to one asserts almost nothing. The ofp_models summary reports the real shape under precision — preciseFieldThreshold (the fieldCount at or below which a code is precise rather than generic), fieldsOnPreciseCodes and preciseShareOfAnnotated — and those follow the vendored snapshot rather than this document. Every code is returned with its fieldCount: check it before aligning to one, and pass maxFieldCount at that threshold to ofp_semantics to see only the precise ones.
"Nothing published" is an answer, not an error. Most sectors are named in the taxonomy but have no reference implementation, and only seven publish policy guardrails. ofp_policies on such a sector returns published: false with a reason, and ofp_validate reports policy.ran: false. Both mean *no rules are published*, never *there are no constraints* — a payload checked for structure alone is not a compliant one, and should not be described as one.
A fourth outcome, unevaluable, means the sector's rules ran but every rule that came back false reads an input the payload does not carry (policy.missingInputs, e.g. co2e_kg, direction, counterparty_industry). Those are e-ledger record fields, not canonical Open Footprint field names — ofp_policies lists them per policy under inputs. Unevaluable is neither a pass nor a breach, and valid is null.
ofp_validate checks, and what it does notThe response is a contract, not a verdict. Every call reports the check catalogue in two lists: checked (what ran) and checks_not_run (what did not, each with a reason and usually a detail). Read both before describing a payload as anything.
| Check | Status | Reason reported when it does not run |
|---|---|---|
schema — presence, primary key, types, declared constraints | runs | entity_has_no_fields |
value_range | runs where the model declares a bound: a quantity outside the declared minimum or maximum is rejected. Which fields declare a bound moves with the vendored snapshot, so it fires on some entities and not others — read checked and schema.coverage.constraintsDeclared per call | no_range_declared, no_numeric_fields |
unit_coherence | not run | not_implemented |
calculation_reproducibility | runs where the record carries all three of 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 | no_calculation_inputs, calculation_inputs_incomplete, ambiguous_calculation_inputs, calculation_inputs_unparseable |
temporal_consistency | runs: a validity period whose end precedes its start is rejected | no_validity_pair, validity_pair_incomplete, validity_values_unparseable |
enum_membership | runs where the vocabulary publishes its members: a well-formed key for a referent that does not exist is rejected | no_members_published, no_reference_field_supplied, reference_ids_unparseable |
referential_integrity | not run: keys are pattern- and member-checked, never resolved against live records | no_data_plane |
factor_provenance | not run | not_implemented |
materiality | not run | not_implemented |
sector_policy | runs when a sector with published guardrails covers the record type | no_sector_supplied, no_policy_published, policy_source_missing, policy_package_unparseable, not_applicable, unevaluable |
Any check can also report schema_not_run, which means the structural check it builds on could not run at all.
calculation_reproducibility is self-referential and nothing more. It resolves its three inputs from the model — the field carrying the emission-measure role, a … Factor Value (never a … Factor ID, which is a reference to a factor rather than a number to multiply by) and a … CO2e … result — or, for a record in the vocabulary the guardrails read, from quantity_value / emission_factor_value / co2e_kg. A slot the record fills more than once is ambiguous_calculation_inputs and the check declines rather than picks. The 1% tolerance is the one CalculationAccuracy in the verification engine and calc_tolerance in the ISO 14064 quantification policy use, so the identity has one tolerance on every surface. What it catches is a record whose own numbers do not multiply out. It does not say the factor is the right one for this source and period (factor_provenance, still not run) or that the quantity came from the meter it claims (the data plane, still not run) — a reproduced calculation is a self-consistent record, not a verified one.
schemaValid is the structural verdict (null if the structural check could not run).assuranceLevel names the depth earned: schema-only, schema-and-value, schema-value-and-policy or full. Each level needs every check beneath it, so guardrails without a value check is still schema-only. The ladder is gated on value_range — a bound the model itself declares — so a record that reproduced its own arithmetic without one still reads schema-only; checked is where that shows up, and it is the more precise of the two.severity (error | warning). Rule ids are stable: required_field_missing, pattern_mismatch, format_mismatch, type_mismatch, primary_key_missing, enum_violation, value_range (with bound: minimum | maximum), temporal_consistency, enum_membership, calculation_reproducibility (with expected, received, tolerance and the three inputs it read), … unknown_field is a per-field warning and stays one.unknown_field wตัดมาแค่ช่วงต้น อ่านต่อใน repo