// mcp-section.jsx — MCP exposing knowledge to AI agents const AGENTS = [ { name: 'Claude Desktop', glyph: '✦' }, { name: 'Cursor', glyph: '◆' }, { name: 'Custom Agent', glyph: '◉' }, { name: 'ChatGPT', glyph: '✺' }, ]; const MCPSection = () => { const ref = React.useRef(null); const inView = useInView(ref, { threshold: 0.2, once: true }); const [t, setT] = React.useState(0); useRaf((s) => setT(s), inView); // Query showcase cycling const queries = [ { q: 'search_collections', args: '{ "query": "política de vacaciones" }', hits: 12 }, { q: 'get_chunks_by_ids', args: '{ "ids": ["p_8421", "p_8422"] }', hits: 2 }, { q: 'get_taxonomy_tree', args: '{ "root": "rrhh" }', hits: 38 }, { q: 'compare_perspectives', args: '{ "topic": "remote work" }', hits: 6 }, ]; const currentIdx = Math.floor(t / 3) % queries.length; const currentQ = queries[currentIdx]; const phase = (t / 3) % 1; return (
05 · MCP

Tu conocimiento,
hablando el idioma
de los agentes.

Un endpoint Model Context Protocol con tokens por tenant. Cualquier cliente —Claude, Cursor, un agente propio— se conecta y obtiene búsqueda híbrida, chunks contextuales, taxonomías y síntesis LLM sobre tu corpus.

{/* Query visualization */}
{/* Agents column */}
AI Agents
{AGENTS.map((agent, i) => { const active = (currentIdx % AGENTS.length) === i; return (
{agent.glyph}
{agent.name}
{active ? 'querying…' : 'connected'}
); })}
{/* MCP pipe in the middle */}
{/* Lines flowing */} {/* packets going right (query) */} {[0, 0.33, 0.66].map((off) => { const p = ((phase + off) % 1); return ( ); })} {/* packets going left (response) */} {[0.16, 0.5, 0.83].map((off) => { const p = 1 - ((phase + off) % 1); return ( ); })} {/* MCP node */}
PROTOCOL
MCP
/api/search/mcp
{/* Tools / result column */}
MCP TOOL CALL ● LIVE
tool
{currentQ.q}()
arguments
{currentQ.args}
response
{currentQ.hits} hits · x-tenant-slug
{/* Tool list ribbon */}
available tools → {['search_collections','get_chunks_by_ids','get_chunks_by_parent','get_filter_criteria','get_taxonomy_tree','get_post_summaries','get_book_toc','compare_perspectives','summarize_document','extract_claims','synthesize_comparison'].map((tool) => ( {tool}() ))}
); }; Object.assign(window, { MCPSection });