{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_8tmmdjv7hex2","handle":"sfs-mcp-toolkit","url":"https://wellknown.network/agents/sfs-mcp-toolkit","links":{"self":"https://wellknown.network/agents/sfs-mcp-toolkit/record.json","html":"https://wellknown.network/agents/sfs-mcp-toolkit","markdown":"https://wellknown.network/agents/sfs-mcp-toolkit/record.md","api":"https://wellknown.network/api/v1/agents/sfs-mcp-toolkit","status":"https://wellknown.network/api/v1/agents/sfs-mcp-toolkit/status","claim":"https://wellknown.network/agents/sfs-mcp-toolkit/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/sfs-mcp-toolkit/claim.json","badge":"https://wellknown.network/agents/sfs-mcp-toolkit/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:sfs-mcp-toolkit","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"sfs-mcp-toolkit","summary":"Spatial Faithfulness Score (SFS) — a domain-agnostic MCP toolkit for measuring context faithfulness in RAG systems","description":"# SFS MCP Toolkit\n\n**Spatial Faithfulness Score (SFS)** — a domain-agnostic metric and MCP server for measuring whether LLM-generated reasoning is grounded in retrieved context, not hallucinated.\n\n## The Problem\n\nRetrieval-Augmented Generation (RAG) systems retrieve evidence and feed it to an LLM to produce grounded answers. But how do you *measure* whether the LLM actually used that evidence faithfully, or fabricated plausible-sounding numbers?\n\nExisting faithfulness metrics (RAGAS, DeepEval, etc.) rely on an LLM-as-judge approach — asking another LLM whether the output is faithful. This creates a circularity problem: you're using the same class of system to audit itself.\n\n## The Solution: SFS\n\nSFS takes a **deterministic, evidence-grounded** approach:\n\n```\nSFS = verified_claims / total_claims\n```\n\n1. **Extract** — Scan the LLM output for numerical assertions (prices, percentages, distances, counts, dosages, ratios, etc.)\n2. **Verify** — For each claim, check whether the stated value falls within a configurable tolerance of any value in the evidence pool\n3. **Score** — The ratio of verified claims to total claims gives a 0–1 faithfulness score\n\n### Why This Works for Any RAG System\n\nThe key insight is that **any RAG system that produces numerical claims can be audited this way**, regardless of domain:\n\n| Domain | Claim Types | Evidence Source |\n|--------|-------------|-----------------|\n| Property Valuation | Prices, gradients, distances | Comparable sales DB, spatial statistics |\n| Medical RAG | Dosages, lab values, durations | Clinical databases, drug references |\n| Legal RAG | Monetary amounts, durations, counts | Case law, statutory databases |\n| Financial Analysis | Prices, returns, ratios | Market data, financial statements |\n\nThe SFS formula remains identical. Only the **extraction patterns** and **tolerance thresholds** change per domain — and these are fully configurable via `DomainConfig`.\n\n### Advantages Over LLM-as-Judge\n\n| Property | LLM-as-Judge | SF…","publisher":null,"homepage":"https://github.com/rganushachadika/sfs-mcp-toolkit","repository":"https://github.com/rganushachadika/sfs-mcp-toolkit","version":"0.1.0","license":"MIT License\n        \n        Copyright (c) 2025 Ganusha Chadika…","protocols":["mcp"],"tags":["llm","mcp","rag","faithfulness","hallucination","spatial","verification"],"pricing":null,"endpoints":[{"url":"pypi:sfs-mcp-toolkit","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"data.vector-search","name":"Vector Search","confidence":1,"provenance":"declared"}],"categories":["data"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"sfs-mcp-toolkit","registry":"pypi","observedAt":"2026-09-10T12:23:23.725Z","publishedAt":"2026-04-13T10:33:33.758066Z","latestVersion":"0.1.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"sfs-mcp-toolkit","url":"https://pypi.org/project/sfs-mcp-toolkit/","firstSeenAt":"2026-09-10T12:21:47.838Z","fetchedAt":"2026-09-10T12:21:47.838Z","normalizedAt":"2026-09-10T12:21:47.838Z"}]},"firstSeenAt":"2026-09-10T12:21:47.838Z","updatedAt":"2026-09-10T12:23:23.725Z"}