diff --git a/mcp-about.php b/mcp-about.php new file mode 100644 index 0000000..0b1eb53 --- /dev/null +++ b/mcp-about.php @@ -0,0 +1,320 @@ + '🔍', + 'dbn.corpus_search' => '🧭', + 'dbn.corpus_stats' => '📊', + 'dbn.list_documents' => '📚', + 'dbn.get_document' => '📖', + 'dbn.citation_graph' => '🔗', + 'dbn.korrespond' => '✉️', + 'dbn.korrespond_refine' => '✨', + 'dbn.advocate_brief' => '🏛️', + 'dbn.deep_research' => '🔬', + 'dbn.ask' => '💬', + 'dbn.summarize' => '📋', + 'dbn.legal_analysis' => '⚖️', + 'dbn.timeline' => '📅', + 'dbn.barnevernet_analyze' => '📄', + 'dbn.discrepancy_find' => '🔄', + 'dbn.extract_text' => '📑', + 'dbn.transcribe_audio' => '🎤', + 'dbn.translate' => '🌍', + 'dbn.redact' => '🔒', + 'dbn.case_workbench_plan' => '🗂️', + 'dbn.save_to_case' => '💾', +]; + +// Presentation groups (ordered). Any tool not listed falls into "More tools". +$toolGroups = [ + 'Search & retrieval' => ['dbn.search_legal', 'dbn.corpus_search', 'dbn.corpus_stats', 'dbn.list_documents', 'dbn.get_document', 'dbn.citation_graph'], + 'Drafting & correspondence' => ['dbn.korrespond', 'dbn.korrespond_refine', 'dbn.advocate_brief', 'dbn.deep_research'], + 'Analysis' => ['dbn.ask', 'dbn.summarize', 'dbn.legal_analysis', 'dbn.timeline', 'dbn.barnevernet_analyze', 'dbn.discrepancy_find'], + 'Documents, media & privacy'=> ['dbn.extract_text', 'dbn.transcribe_audio', 'dbn.translate', 'dbn.redact'], + 'Case workbench' => ['dbn.case_workbench_plan', 'dbn.save_to_case'], +]; + +// Index tools by slug for grouped rendering. +$bySlug = []; +foreach ($toolCatalog as $t) { + $bySlug[(string)($t['slug'] ?? '')] = $t; +} +$grouped = []; +$claimed = []; +foreach ($toolGroups as $groupName => $slugs) { + $bucket = []; + foreach ($slugs as $s) { + if (isset($bySlug[$s])) { + $bucket[] = $bySlug[$s]; + $claimed[$s] = true; + } + } + if ($bucket) { + $grouped[$groupName] = $bucket; + } +} +$leftover = []; +foreach ($toolCatalog as $t) { + if (empty($claimed[(string)($t['slug'] ?? '')])) { + $leftover[] = $t; + } +} +if ($leftover) { + $grouped['More tools'] = $leftover; +} +?> + + +
+ + ++ The Do Better Norge legal toolkit is exposed as a Model Context Protocol server. Any MCP + client — Claude, an n8n agent, Cursor or your own SDK — can search the legal corpus + (family law, child-welfare, procurement, health, labour, tax, ECHR case law and more), + draft correspondence to authorities, analyze Barnevernet documents and more, all grounded + in the live DBN legal sources. +
+ Mint a token & connect → +Server endpoint
++ A live Streamable-HTTP bridge in front of the DBN tool runtime. Tools are registered + dynamically per session, so the catalog always reflects the server. Access is gated by a + member token (Plus/Pro), so each call runs in the token-holder's own tenant. +
+= (int)$toolCount ?> tools available
++ Every tool returns source-grounded output with citations where applicable. This is + informational legal assistance, not legal advice. +
+ + $tools): ?> += htmlspecialchars($groupName) ?>
+ +Connect from your client
+
+ Plus and Pro members mint a personal MCP token, then point Claude Desktop, Claude Code,
+ Cursor, VS Code or any Streamable-HTTP MCP client at the endpoint above. The server
+ registers all = (int)$toolCount ?> dbn.* tools per session.
+
Privacy
+dbn.save_to_case.
+