RISE Specification: MCP Tool Exposure#
Desired Outcome#
The DSL server exposes its semantic knowledge as MCP (Model Context Protocol) tools, enabling any AI agent in the IAIP ecosystem to query concepts, traverse relationships, validate terminology, and access Indigenous knowledge context — the same knowledge surface as LSP but through the agent-native protocol.
Current Reality#
- The original scaffolding targets LSP only (IDE integration)
- AI agents (mia-code, miadi-code, Heyva, Anikwag-Ayaaw) interact via MCP tools
- RSIS-GitNexus already exposes graph operations as MCP tools
- No mechanism exists for agents to query the IAIP concept framework programmatically
- Agents must re-derive concept meanings from system prompts or conversation history
Structural Tension#
Between semantic knowledge locked in an IDE-only protocol and the growing fleet of AI agents that need framework-aligned understanding to participate in ceremonial technology development.
MCP Tools#
1. iaip_concept_lookup#
Purpose: Look up a concept by ID or name, returning full definition with relational and Indigenous knowledge context.
```json { "name": "iaip_concept_lookup", "description": "Look up an IAIP framework concept. Returns definition, relationships, Indigenous knowledge context (Two-Eyed Seeing, polycentric, relational, ceremonial), directional alignment, and OCAP flags.", "inputSchema": { "type": "object", "properties": { "concept": { "type": "string", "description": "Concept ID (e.g., 'creative-orientation') or natural language name (e.g., 'Creative Orientation')" }, "depth": { "type": "string", "enum": ["brief", "full", "relational"], "default": "full", "description": "brief: definition only. full: definition + Indigenous context. relational: full + all related concepts" } }, "required": ["concept"] } } ```
2. iaip_concept_relationship#
Purpose: Query the relationship between two concepts.
```json { "name": "iaip_concept_relationship", "description": "Show how two IAIP concepts relate to each other. Returns relationship type, path, and Indigenous knowledge context for the relationship.", "inputSchema": { "type": "object", "properties": { "concept1": { "type": "string" }, "concept2": { "type": "string" }, "max_path_length": { "type": "integer", "default": 3 } }, "required": ["concept1", "concept2"] } } ```
3. iaip_concept_search#
Purpose: Search concepts by keyword, category, direction, or usage context.
```json { "name": "iaip_concept_search", "description": "Search IAIP framework concepts by keyword, category, direction, or usage context.", "inputSchema": { "type": "object", "properties": { "query": { "type": "string", "description": "Search query (keyword or phrase)" }, "category": { "type": "string", "enum": ["Framework", "Feeling/Capacity", "Knowledge System", "Integration", "Ceremony", "Orchestration"] }, "direction": { "type": "string", "enum": ["east", "south", "west", "north", "center"] }, "usage_context": { "type": "string", "description": "Filter by usage context (e.g., 'AI development', 'ceremony')" } } } } ```
4. iaip_validate_terminology#
Purpose: Check if a text uses IAIP framework terminology correctly and coherently.
```json { "name": "iaip_validate_terminology", "description": "Validate that text uses IAIP framework terminology correctly. Returns coherence score, identified concepts, and suggestions for framework-aligned language.", "inputSchema": { "type": "object", "properties": { "text": { "type": "string", "description": "Text to validate" }, "strictness": { "type": "string", "enum": ["gentle", "standard", "strict"], "default": "standard", "description": "gentle: suggestions only. standard: flag inconsistencies. strict: flag all non-framework language" } }, "required": ["text"] } } ```
5. iaip_concept_context#
Purpose: Get the full relational context around a concept — what it enables, what enables it, ceremonial implications, directional alignment.
```json { "name": "iaip_concept_context", "description": "Get the full relational context around a concept: what it enables, what grounds it, ceremonial implications, and directional flow.", "inputSchema": { "type": "object", "properties": { "concept": { "type": "string" }, "hops": { "type": "integer", "default": 2, "description": "How many relationship hops to traverse" } }, "required": ["concept"] } } ```
6. iaip_direction_concepts#
Purpose: List all concepts aligned with a specific direction (East/South/West/North).
```json { "name": "iaip_direction_concepts", "description": "List all IAIP concepts aligned with a specific direction of the Four Directions framework.", "inputSchema": { "type": "object", "properties": { "direction": { "type": "string", "enum": ["east", "south", "west", "north"], "description": "Direction to query" } }, "required": ["direction"] } } ```
7. iaip_concept_suggest#
Purpose: Given a context or task description, suggest relevant IAIP framework concepts.
```json { "name": "iaip_concept_suggest", "description": "Given a task or context description, suggest relevant IAIP framework concepts that should inform the work.", "inputSchema": { "type": "object", "properties": { "context": { "type": "string", "description": "Description of the task or context" }, "max_suggestions": { "type": "integer", "default": 5 } }, "required": ["context"] } } ```
8. iaip_wisdom_ledger_log#
Purpose: Record a concept usage event in the Wisdom Ledger.
```json { "name": "iaip_wisdom_ledger_log", "description": "Record that a concept was used in a specific context, contributing to the Wisdom Ledger's understanding of concept evolution and usage patterns.", "inputSchema": { "type": "object", "properties": { "concept": { "type": "string" }, "agent_id": { "type": "string", "description": "ID of the agent using the concept" }, "context": { "type": "string", "description": "Brief description of how/where the concept was used" }, "session_id": { "type": "string", "description": "Session identifier for continuity tracking" } }, "required": ["concept", "agent_id", "context"] } } ```
MCP Resources#
In addition to tools, expose read-only resources:
```json [ { "uri": "iaip://concepts/registry", "name": "IAIP Concept Registry", "description": "Full concept registry as structured data", "mimeType": "application/json" }, { "uri": "iaip://concepts/graph", "name": "IAIP Relational Graph", "description": "Concept relationship graph as adjacency list", "mimeType": "application/json" }, { "uri": "iaip://concepts/directions/{direction}", "name": "Concepts by Direction", "description": "Concepts filtered by Four Directions alignment", "mimeType": "application/json" }, { "uri": "iaip://wisdom/ledger", "name": "Wisdom Ledger Summary", "description": "Aggregate concept usage patterns and evolution", "mimeType": "application/json" } ] ```
MCP Prompts#
Pre-built prompt templates for common agent workflows:
```json [ { "name": "iaip_framework_grounding", "description": "Ground an agent's work in the IAIP framework by providing relevant concept context", "arguments": [ { "name": "task_description", "description": "What the agent is about to work on", "required": true } ] }, { "name": "iaip_ceremony_check", "description": "Check if a proposed action requires ceremonial consideration based on IAIP concepts", "arguments": [ { "name": "proposed_action", "description": "What the agent proposes to do", "required": true } ] } ] ```
Implementation Notes#
Dual-Protocol Server#
```python
server.py — runs both LSP and MCP on different transports#
import asyncio from pygls.server import LanguageServer from mcp.server import Server as MCPServer
class IAIPDSLServer: def init(self): self.registry = ConceptRegistry() self.graph = RelationalGraphEngine() self.mapper = IndigenousKnowledgeMapper() self.wisdom = WisdomLedger()
# LSP for IDE clients
self.lsp = LanguageServer("iaip-dsl", "v1.0.0")
self._register_lsp_handlers()
# MCP for agent clients
self.mcp = MCPServer("iaip-dsl")
self._register_mcp_tools()
async def start(self, lsp_transport, mcp_transport):
await asyncio.gather(
self.lsp.start(lsp_transport),
self.mcp.run(mcp_transport)
)
```
Transport Options#
- LSP: stdio (Claude Code plugin) or TCP (VS Code)
- MCP: stdio (local agent) or SSE (remote agents)
Success Metrics#
- All 8 MCP tools respond in <100ms
- MCP tool responses include the same Indigenous knowledge context as LSP hover
- At least 3 AI agents (mia-code, miadi-code, one other) can query concepts via MCP
- Wisdom Ledger records at least 100 usage events per session day
- Resource URIs resolve correctly and return current registry state
- Prompt templates produce framework-grounded agent behavior