Calera WebMCP — In-Browser AI Agent Protocol (W3C Draft)
Deterministic SEC EDGAR financial tools, XBRL fact verification, and visual UI co-presence directly inside browser tabs via the W3C WebMCP Draft Specification (document.modelContext) and window.__calera_webmcp. Zero credential leakage, sub-50ms CPU execution, and mathematical ∂² = 0 zero-confabulation guarantees.
Boundary refusal operator guarantees 0.00% statistical confabulation on all extracted US-GAAP metrics and XBRL facts.
Agent operates inside the user active browser session; no raw bearer tokens or API keys are exposed to LLM prompts.
Human user watches the live dashboard highlight rows as the agent queries statements via CustomEvents.
Internal A₄ lattice constants and Hopfield tensor weights remain strictly isolated in Cloud Run Go microservices.
Server-side Go lattice endpoints respond in sub-5ms on standard CPU, delivering instant in-browser agent actuation.
Every recalled number includes a SHA-256 cryptographic cell provenance hash verifiable against EDGAR sources.
Interactive Agent Verification Sandbox
window.__calera_webmcp / document.modelContext
Execute live WebMCP tools in your active browser session. Watch real-time API latency, cryptographic proof verification, and DOM CustomEvent dispatches:
{
"status": "ready",
"message": "Select a tool and click 'Execute WebMCP Tool' to run in-browser actuation."
}
- Waiting for agent actions or tool executions...
Agent Framework Integration (Python & TypeScript)
Playwright uses in-browser WebMCP (document.modelContext). The other tabs show hosted MCP / REST fallbacks — POST /api/query requires a license key. Full hosted-MCP install lives on /mcp-docs.
# Hosted MCP (not in-browser WebMCP). In-tab agents use document.modelContext.
# Terminal:
# agy mcp add --header "X-License-Key: clabs_live_YOUR_KEY" finsec https://finsec.caleralabs.com/mcp
import os
import httpx
headers = {
"X-License-Key": os.environ["FINSEC_API_KEY"],
"Content-Type": "application/json",
}
payload = {
"query": "What was NVIDIA's audited FY2025 revenue?",
"low_tokens": True,
}
resp = httpx.post(
"https://financesec.api.caleralabs.com/api/query",
headers=headers,
json=payload,
)
print(resp.json())
import os
import httpx
from langchain.tools import tool
from langchain_openai import ChatOpenAI
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate
@tool
def get_sec_metric_exact(ticker: str, metric: str, fiscal_year: int) -> dict:
"""Extract exact, audited US-GAAP metrics from FinanceSec (hosted REST, not in-browser WebMCP)."""
response = httpx.post(
"https://financesec.api.caleralabs.com/api/query",
headers={
"X-License-Key": os.environ["FINSEC_API_KEY"],
"Content-Type": "application/json",
},
json={"query": f"{ticker.upper()} {metric} FY{fiscal_year}", "low_tokens": True},
)
return response.json()
tools = [get_sec_metric_exact]
llm = ChatOpenAI(model="gpt-4o", temperature=0.0)
prompt = ChatPromptTemplate.from_messages([
("system", "Ground all numerical assertions in FinanceSec facts. Treat SAFE_REFUSAL as honesty."),
("human", "{input}"),
("placeholder", "{agent_scratchpad}"),
])
agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = executor.invoke({"input": "Extract NVIDIA's FY2025 Revenues and verify the proof hash."})
print(result["output"])
import os
from crewai import Agent, Task, Crew
from crewai.tools import tool
import httpx
@tool("Calera SEC Ground Truth Tool")
def calera_sec_query(ticker: str, metric: str, fiscal_year: int) -> str:
"""Queries audited US-GAAP financial facts from FinanceSec hosted REST."""
res = httpx.post(
"https://financesec.api.caleralabs.com/api/query",
headers={
"X-License-Key": os.environ["FINSEC_API_KEY"],
"Content-Type": "application/json",
},
json={"query": f"{ticker} {metric} FY{fiscal_year}"},
)
if res.status_code == 200:
data = res.json()
return f"Verified Ground Truth: {data}"
return "SAFE_REFUSAL: Ground truth evidence not present in SEC database."
financial_analyst = Agent(
role="Principal Financial Valuation Auditor",
goal="Verify corporate performance metrics against audited 10-K instance filings.",
backstory="You are an SEC compliance officer who relies exclusively on cryptographic XBRL extractions.",
tools=[calera_sec_query],
verbose=True
)
audit_task = Task(
description="Audit NVIDIA FY2025 Revenues and calculate YoY growth against FY2024.",
expected_output="A structured report detailing exact audited revenue and proof hashes.",
agent=financial_analyst
)
crew = Crew(agents=[financial_analyst], tasks=[audit_task])
crew.kickoff()
import os
from autogen import AssistantAgent, UserProxyAgent, register_function
import httpx
def calera_get_metric(ticker: str, metric: str, fiscal_year: int) -> dict:
return httpx.post(
"https://financesec.api.caleralabs.com/api/query",
headers={
"X-License-Key": os.environ["FINSEC_API_KEY"],
"Content-Type": "application/json",
},
json={"query": f"{ticker} {metric} FY{fiscal_year}"},
).json()
analyst = AssistantAgent(
name="Financial_Analyst",
llm_config={"config_list": [{"model": "gpt-4o", "api_key": os.environ["OPENAI_API_KEY"]}]},
system_message="Use the calera_get_metric tool to verify all SEC 10-K numbers."
)
user_proxy = UserProxyAgent(
name="User_Proxy",
human_input_mode="NEVER",
max_consecutive_auto_reply=2,
code_execution_config=False
)
register_function(
calera_get_metric,
caller=analyst,
executor=user_proxy,
name="calera_get_metric",
description="Extracts audited SEC EDGAR financial metrics with SHA-256 proof seals."
)
user_proxy.initiate_chat(analyst, message="Verify Apple (AAPL) FY2024 Net Income.")
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://finsec.caleralabs.com/mcp"),
{ requestInit: { headers: { "X-License-Key": "clabs_live_YOUR_KEY" } } }
);
const mcpClient = new Client({ name: "claude-finsec-agent", version: "1.0.0" }, { capabilities: {} });
await mcpClient.connect(transport);
const tools = await mcpClient.listTools();
console.log("Connected to Calera MCP Tools:", tools.tools.map(t => t.name));
const result = await mcpClient.callTool({
name: "query_financial_sec",
arguments: { query: "What was Apple's FY2023 revenue?" }
});
console.log(result);
import { chromium } from "playwright";
async function runWebMCPAgent() {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://finsec.caleralabs.com/webmcp-docs");
// Execute WebMCP tool directly in the browser's modelContext
const result = await page.evaluate(async () => {
const harness = (window as any).__calera_webmcp;
return await harness.executeTool("calera.sec.get-metric-exact", {
ticker: "NVDA",
metric: "Revenues",
fiscalYear: 2025
});
});
console.log("In-Browser WebMCP Extraction:", result);
console.log("SHA-256 Proof:", result.proofHash);
await browser.close();
}
runWebMCPAgent();
Comprehensive WebMCP Tool Catalog Specification
First-class WebMCP tools on FinanceSec public pages and the authenticated dashboard. Viewer actuators run in the Universal Dashboard — there is no separate public filing-viewer demo.
| Tool Identifier | Target Surface | Description | Input Schema Summary |
|---|---|---|---|
calera.sec.get-metric-exact |
Public & Dashboard | Extract exact audited US-GAAP fact from XBRL instance document. | { ticker: str, metric: str, fiscalYear: int, fiscalQuarter?: int } |
calera.sec.verify-claim |
Authenticated Dashboard | Calera Hallucination Firewall mathematical verification against 10-K. | { ticker: str, claimText: str, fiscalYear: int } |
calera.sec.search-filings |
Public & Dashboard | Query SEC EDGAR for 10-K, 10-Q, 8-K, S-1 accessions & CIK links. | { ticker: str, formType?: str, year?: int, limit?: int } |
calera.sec.compare-peers |
Authenticated Dashboard | Compute cross-company valuation and operating efficiency against peers. | { primaryTicker: str, peerTickers: str[], metric: str, fiscalYear: int } |
calera.sec.dcf-sensitivity |
Authenticated Dashboard | Calculate deterministic DCF enterprise valuation sensitivity matrix. | { ticker: str, baseFreeCashFlow?: num, waccRange?: obj, terminalGrowthRate?: num } |
calera.sec.highlight-viewer-statement |
Dashboard | Highlight a statement row in the authenticated filing explorer. | { statementType: str, rowLabel: str, highlightColor?: str } |
calera.sec.navigate-filing-section |
Dashboard | Jump the authenticated explorer to Item 1, 1A, 7, 7A, 8, notes, or 9A. | { section: str, ticker?: str } |
calera.sec.search-footnotes |
Dashboard | Search footnote disclosures in the authenticated explorer. | { query: str, ticker?: str, disclosureTopic?: str } |
calera.icx.query-memory-context |
Public & Dashboard | Query Infinite Context (ICX) topological memory graph. | { query: str, targetDomain?: str, maxDepth?: int } |
calera.nav.navigate-product |
Public Surfaces | Direct browser viewport to marketing, pricing, docs, or console paths. | { product: str, destination: str } |
calera.nav.search-docs |
Public Surfaces | Search technical documentation and return deep links. | { query: str } |
In-Session Zero-Credential Triad Architecture
1-Step Web Integration for Partners & Enterprise Tenants
Every FinanceSec public page already registers document.modelContext via the bundled bridge. There is no standalone CDN module at /lib/webmcp_bridge.js. IDE agents should use the hosted MCP endpoint instead:
agy mcp add --header "X-License-Key: clabs_live_YOUR_KEY" finsec https://finsec.caleralabs.com/mcp