UNPKG

aiwg

Version:

Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.

490 lines (442 loc) 13.9 kB
# MCP Extensions Schema # Based on REF-066 Model Context Protocol # Issues: #196 (Prompts), #197 (Discovery), #198 (OAuth) $schema: "https://json-schema.org/draft/2020-12/schema" $id: "https://aiwg.io/schemas/mcp-extensions/v1" title: "MCP Extensions Schema" description: | Comprehensive schema for MCP prompts, server discovery, and OAuth 2.1 authentication per REF-066 Model Context Protocol specification. type: object required: - version - prompts_catalog - server_discovery - authentication properties: version: type: string pattern: "^\\d+\\.\\d+\\.\\d+$" default: "1.0.0" prompts_catalog: $ref: "#/$defs/PromptsCatalog" server_discovery: $ref: "#/$defs/ServerDiscovery" authentication: $ref: "#/$defs/Authentication" $defs: PromptsCatalog: type: object description: "MCP Prompts catalog per REF-066" properties: enabled: type: boolean default: true base_uri: type: string default: "aiwg://prompts" categories: type: object properties: sdlc: type: object description: "SDLC phase transition prompts" properties: prompts: type: array items: $ref: "#/$defs/PromptDefinition" default: - name: "phase-transition" description: "Orchestrate SDLC phase transition" arguments: - name: "from_phase" required: true - name: "to_phase" required: true - name: "phase-kickoff" description: "Initialize new SDLC phase" arguments: - name: "phase" required: true - name: "phase-review" description: "Review phase completion" arguments: - name: "phase" required: true voice: type: object description: "Voice profile application prompts" properties: prompts: type: array items: $ref: "#/$defs/PromptDefinition" default: - name: "apply-voice" description: "Apply voice profile to content" arguments: - name: "voice" required: true enum: [technical-authority, friendly-explainer, executive-brief, casual-conversational] - name: "content" required: true - name: "analyze-voice" description: "Analyze voice characteristics of content" arguments: - name: "content" required: true - name: "voice-comparison" description: "Compare content against voice profile" arguments: - name: "content" required: true - name: "voice" required: true testing: type: object description: "Test generation prompts" properties: prompts: type: array items: $ref: "#/$defs/PromptDefinition" default: - name: "generate-unit-tests" description: "Generate unit tests for code" arguments: - name: "source_file" required: true - name: "framework" required: false default: "jest" - name: "generate-integration-tests" description: "Generate integration tests" arguments: - name: "component" required: true - name: "mutation-analysis" description: "Analyze test quality via mutation testing" arguments: - name: "test_file" required: true security: type: object description: "Security review prompts" properties: prompts: type: array items: $ref: "#/$defs/PromptDefinition" default: - name: "security-review" description: "Security review for artifact" arguments: - name: "artifact" required: true - name: "standards" required: false default: ["OWASP-Top-10"] - name: "threat-model" description: "Generate threat model" arguments: - name: "component" required: true - name: "framework" required: false default: "STRIDE" PromptDefinition: type: object required: - name - description properties: name: type: string description: "Unique prompt name" description: type: string description: "Human-readable description" arguments: type: array items: type: object properties: name: type: string description: type: string required: type: boolean default: false default: description: "Default value if not provided" enum: type: array items: type: string template: type: string description: "Prompt template with {arg} placeholders" ServerDiscovery: type: object description: "MCP server discovery via .well-known per REF-066" properties: enabled: type: boolean default: true well_known_path: type: string default: ".well-known/mcp.json" schema: type: object description: ".well-known/mcp.json schema" properties: name: type: string default: "aiwg" version: type: string default: "1.0.0" description: type: string default: "AIWG MCP Server" capabilities: type: array items: type: string default: - tools - resources - prompts endpoints: type: object properties: stdio: type: string default: "npx -y aiwg mcp serve" http: type: string description: "Optional HTTP endpoint" authentication: type: object properties: required: type: boolean default: false types: type: array items: type: string default: - oauth2 - bearer discovery_protocol: type: object properties: steps: type: array items: type: string default: - "Client requests https://domain/.well-known/mcp.json" - "Server returns discovery document" - "Client parses capabilities and endpoints" - "Client initiates connection via preferred endpoint" - "If auth required, client starts OAuth flow" Authentication: type: object description: "OAuth 2.1 authentication for MCP per REF-066" properties: enabled: type: boolean default: false oauth21: type: object properties: authorization_endpoint: type: string default: "/oauth/authorize" token_endpoint: type: string default: "/oauth/token" revocation_endpoint: type: string default: "/oauth/revoke" grant_types: type: array items: type: string default: - authorization_code - refresh_token - client_credentials pkce_required: type: boolean default: true description: "PKCE required per OAuth 2.1" scopes: type: object description: "Scope definitions" additionalProperties: type: string default: tools:read: "Read tool definitions" tools:execute: "Execute tools" resources:read: "Read resources" resources:write: "Write resources" prompts:read: "Read prompt definitions" prompts:execute: "Execute prompts" admin: "Full administrative access" token_management: type: object properties: access_token_lifetime: type: integer default: 3600 description: "Access token TTL in seconds" refresh_token_lifetime: type: integer default: 604800 description: "Refresh token TTL in seconds" token_rotation: type: boolean default: true description: "Rotate refresh tokens on use" middleware: type: object description: "Auth middleware configuration" properties: validate_bearer: type: boolean default: true enforce_scopes: type: boolean default: true rate_limiting: type: object properties: enabled: type: boolean default: true requests_per_minute: type: integer default: 60 # Prompt templates prompt_templates: phase_transition: | You are orchestrating an SDLC phase transition from {from_phase} to {to_phase}. Review the following artifacts from {from_phase}: - Check completion criteria - Validate quality gates - Identify blockers Then prepare for {to_phase}: - Create phase kickoff document - Assign initial tasks - Update project status apply_voice: | Transform the following content using the {voice} voice profile: Original content: {content} Voice characteristics for {voice}: - Tone and register - Vocabulary preferences - Sentence structure patterns - Authenticity markers Output the transformed content maintaining the original meaning. security_review: | Conduct a security review of {artifact} against {standards}. Check for: - Authentication/authorization issues - Input validation gaps - Data exposure risks - Cryptographic weaknesses - Configuration vulnerabilities Output findings in threat model format. # CLI commands cli_commands: prompt_list: command: "aiwg mcp prompts list" description: "List available prompts" options: - name: "--category" description: "Filter by category" prompt_get: command: "aiwg mcp prompts get <name>" description: "Get prompt details" prompt_run: command: "aiwg mcp prompts run <name> [args...]" description: "Execute prompt" token_create: command: "aiwg mcp token create" description: "Create access token" options: - name: "--scopes" description: "Comma-separated scopes" - name: "--expires" description: "Expiration time" token_revoke: command: "aiwg mcp token revoke <token-id>" description: "Revoke access token" token_list: command: "aiwg mcp token list" description: "List active tokens" # Agent protocol agent_protocol: list_prompts: description: "List available prompts" steps: - load_prompt_catalog - filter_by_category - format_prompt_list - return_response execute_prompt: description: "Execute a prompt" steps: - validate_prompt_exists - validate_arguments - load_prompt_template - substitute_arguments - execute_prompt - return_result authenticate: description: "OAuth authentication flow" steps: - check_if_auth_required - if_auth_required: - initiate_oauth_flow - get_authorization_code - exchange_for_token - store_tokens_securely - validate_token_scopes - proceed_with_request discover_server: description: "Discover MCP server" steps: - request_well_known - parse_discovery_document - check_capabilities - select_endpoint - initiate_connection # Storage storage: prompts_path: ".aiwg/mcp/prompts/" tokens_path: "~/.config/aiwg/tokens/" discovery_path: ".well-known/mcp.json" # Research targets (from REF-066) research_targets: prompts: "Expose all framework prompts as MCP primitives" discovery: "Enable zero-config server discovery" authentication: "Secure multi-tenant access with OAuth 2.1" # References references: research: - "@.aiwg/research/findings/REF-066-mcp.md" implementation: - "#196" - "#197" - "#198" related: - "@src/mcp-server/index.ts" - "@agentic/code/frameworks/sdlc-complete/prompts/" - "@agentic/code/addons/voice-framework/prompts/"