diff --git a/.github/workflows/publish-mcp.yml b/.github/workflows/publish-mcp.yml new file mode 100644 index 0000000..8456dee --- /dev/null +++ b/.github/workflows/publish-mcp.yml @@ -0,0 +1,34 @@ +name: Publish to Official MCP Registry + +on: + release: + types: [published] + workflow_dispatch: + +jobs: + publish-mcp: + name: Publish Server to modelcontextprotocol/registry + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Install mcp-publisher + run: | + curl -sSL "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher + chmod +x mcp-publisher + + - name: Authenticate via GitHub OIDC + run: ./mcp-publisher login github-oidc + + - name: Publish server.json to MCP Registry + run: ./mcp-publisher publish diff --git a/server.json b/server.json new file mode 100644 index 0000000..bd52424 --- /dev/null +++ b/server.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", + "name": "io.github.ritualdev-lab/skillprism", + "title": "SkillPrism MCP Context Optimizer & Tool Search Proxy", + "description": "Progressive Skill Disclosure, Semantic Out-of-Context Tool Search, and Context Window Compactor for Autonomous AI Coding Agents", + "version": "1.2.3", + "status": "active", + "repository": { + "url": "https://github.com/RitualDev-Lab/SkillPrism", + "source": "github" + }, + "website": "https://ritualdev.in/skillprism", + "packages": [ + { + "registryType": "npm", + "identifier": "@ritualdev-lab/skillprism", + "version": "1.2.3", + "transport": { + "type": "stdio" + } + } + ] +} diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..e71929b --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,23 @@ +startCommand: + type: stdio + configSchema: + type: object + properties: + turnTtl: + type: integer + default: 3 + title: "Turn TTL" + description: "Number of conversational turns before inactive tools are evicted from the context window" + idleTtl: + type: integer + default: 600 + title: "Idle TTL (seconds)" + description: "Seconds of inactivity before tools are automatically pruned" + commandFunction: |- + (config) => ({ + command: 'npx', + args: ['-y', '@ritualdev-lab/skillprism', 'proxy', '--stdio', '--turn-ttl', String(config.turnTtl || 3), '--idle-ttl', String(config.idleTtl || 600)] + }) + exampleConfig: + turnTtl: 3 + idleTtl: 600