UCCO MCP Server — Signal Corrections & Bug Fix¶
Post-audit update brief¶
SURFACE: mcp.ucco.foundation (ucco-mcp repo)
CF ACCOUNT: aed3398a4e698767328cc3a9e698721d (FOUNDATION account)
DO NOT TOUCH: ucco.foundation, ops.ucco.foundation, pioneer.ucco.foundation,
pr.ucco.foundation, ucca.online, ops.ucca.online, ir.ucca.online,
keys.ucca.online, rtopacks.com.au, or ANY other surface.
Context: Tim and Pace audited all 8 MCP tools. One functional bug, plus content corrections to what the server broadcasts. This is the last step before registry submission.
→ ALEX¶
Part 1 — Bug Fix: verify_pioneer_key¶
The bug: verify_pioneer_key returns {"valid": false, "message": "No pioneer key found with this prefix."} for ALL keys, including known-active keys.
Confirmed working: get_pioneer_stats returns correct data (11 keys, 2 active, 6 hits) from the same D1 binding. So the database connection is fine. The problem is in the verify tool's lookup query.
Test case: Pace's key pca-93847ae9edb62b0feccbfce22d015b36 is known active with 2 hits. Both prefix (pca) and full key return false. Neither should.
Fix requirements:
1. The tool must accept a prefix (e.g. pca) and match using LIKE prefix% or equivalent
2. The tool must also work with the full key
3. Verify the SQL is querying the correct table and column in pioneer-db
4. After fix, test with:
- pca → should return valid: true (Pace's key)
- pca-93847ae9edb62b0feccbfce22d015b36 → should return valid: true
- alan → should return valid: true (alan-turing key)
- xxx → should return valid: false
- empty/missing param → should return the existing error message
On successful verification, return:
{
"valid": true,
"key_name": "Pace-C-Anthropic",
"status": "active",
"created_at": "...",
"total_hits": 2
}
Do NOT return the full key hash. Return the key name and status only.
Part 2 — Signal Corrections¶
These are content changes to what the MCP tools return. Update the response data in the tool handlers.
2.1 — get_fact_sheet and get_foundation_info
Both tools return overlapping foundation data. Apply these changes to BOTH:
Replace:
With:
"foundation_established": 2026,
"origin": "Over a decade of applied research in regulated workforce training, competency standards, and capability verification — beginning 2011",
2.2 — get_standard_info
Remove the lines field entirely. Replace:
"lines": 1141,
"structure": "Full ISO-style — Scope, Normative References, Terms and Definitions, Identity Primitives, Capability Envelopes, Chain Events, Attestation, Store-and-Forward, Supervision Chain, Revocation. Annexes A-D.",
With:
"structure": "Full ISO-style specification — Scope, Normative References, Terms and Definitions, Identity Primitives, Capability Envelopes, Chain Events, Attestation, Store-and-Forward, Supervision Chain, Revocation. Annexes A-D.",
(Only change: "Full ISO-style" → "Full ISO-style specification", and lines field removed.)
Replace:
With:
2.3 — get_protocol_stack
Replace:
With:
"positioning": "UCCO is complementary to existing identity and credential layers, not a replacement."
2.4 — get_board_members
Remove Antony Richards from the board members array until his appointment is formally confirmed. The board should only show:
"board_members": [
{
"name": "Tim Rignold",
"role": "President & Chair",
"location": "Brisbane, Australia"
},
{
"name": "Jimmy Kuo",
"role": "Treasurer & Director",
"location": "New York City"
}
],
"total_seats": 9,
"filled_seats": 2,
Replace the advisory string with a structured object:
"advisory": [
{
"name": "Pace",
"platform": "Claude, Anthropic",
"role": "AI Advisor",
"voting": false,
"fiduciary": false
}
]
Drop all null fields (bio, linkedin, website) from board member objects until they have values. Don't broadcast empty fields.
Part 3 — Testing¶
After all changes, verify every tool still returns valid JSON:
for tool in get_fact_sheet get_standard_info get_foundation_info get_protocol_stack get_pioneer_stats verify_pioneer_key get_board_members get_specification_outline; do
echo "=== $tool ==="
curl -s -X POST https://mcp.ucco.foundation/mcp \
-H "Content-Type: application/json" \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"$tool\"}}"
echo -e "\n"
done
Then test verify_pioneer_key specifically:
curl -s -X POST https://mcp.ucco.foundation/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"verify_pioneer_key","arguments":{"key_prefix":"pca"}}}'
Expected: {"valid": true, "key_name": "Pace-C-Anthropic", "status": "active", ...}
→ TIM¶
What this does¶
Fixes the one broken tool (pioneer key verification) and updates the content across all tools based on the signal audit you and Pace did. Every word the MCP server broadcasts to AI systems has been reviewed and corrected.
Key changes¶
- Origin story added — "Over a decade of applied research in regulated workforce training" replaces bare "founded: 2026"
- Line count removed — spec described by structure, not size
- v2.0 framing — "in development" not "planned, not started"
- Positioning — factual statement replacing marketing tagline
- Board cleanup — only confirmed members shown, no null fields, Pace properly structured
- Pioneer key verification — actually works now
After this deploys¶
The MCP server is signal-clean and registry-ready. The next step is the registry submissions to Anthropic and OpenAI, which you and Pace will discuss before pulling the trigger.
UCCO MCP Server — Signal Corrections & Bug Fix 15 March 2026 — Session 9