feat(registry): add smithery.yaml, server.json, and MCP Registry verification tag
- smithery.yaml: Smithery.ai configuration for PyPI install via uvx - server.json: Official MCP Registry manifest (io.github.airano-ir/mcphub) - README.md: add <!-- mcp-name --> verification tag for MCP Registry publishing Part of D.4 — MCP Registry submissions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
<!-- mcp-name: io.github.airano-ir/mcphub -->
|
||||
|
||||
# MCP Hub
|
||||
|
||||
<div align="center">
|
||||
|
||||
72
server.json
Normal file
72
server.json
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
||||
"name": "io.github.airano-ir/mcphub",
|
||||
"description": "Unified MCP server for managing WordPress, WooCommerce, Gitea, n8n, Supabase, OpenPanel, Appwrite, and Directus with 596 tools, multi-site support, and OAuth 2.1 authentication.",
|
||||
"title": "MCP Hub",
|
||||
"websiteUrl": "https://github.com/airano-ir/mcphub",
|
||||
"repository": {
|
||||
"url": "https://github.com/airano-ir/mcphub",
|
||||
"source": "github"
|
||||
},
|
||||
"version": "3.0.4",
|
||||
"packages": [
|
||||
{
|
||||
"registryType": "pypi",
|
||||
"registryBaseUrl": "https://pypi.org",
|
||||
"identifier": "mcphub-server",
|
||||
"version": "3.0.4",
|
||||
"runtimeHint": "uvx",
|
||||
"transport": {
|
||||
"type": "stdio"
|
||||
},
|
||||
"environmentVariables": [
|
||||
{
|
||||
"name": "MASTER_API_KEY",
|
||||
"description": "Master API key for authentication (also used for dashboard login)",
|
||||
"isRequired": true,
|
||||
"isSecret": true
|
||||
},
|
||||
{
|
||||
"name": "WORDPRESS_SITE1_URL",
|
||||
"description": "WordPress site URL (e.g., https://example.com)"
|
||||
},
|
||||
{
|
||||
"name": "WORDPRESS_SITE1_USERNAME",
|
||||
"description": "WordPress admin username"
|
||||
},
|
||||
{
|
||||
"name": "WORDPRESS_SITE1_APP_PASSWORD",
|
||||
"description": "WordPress Application Password",
|
||||
"isSecret": true
|
||||
},
|
||||
{
|
||||
"name": "GITEA_SITE1_URL",
|
||||
"description": "Gitea instance URL"
|
||||
},
|
||||
{
|
||||
"name": "GITEA_SITE1_TOKEN",
|
||||
"description": "Gitea API token",
|
||||
"isSecret": true
|
||||
},
|
||||
{
|
||||
"name": "N8N_SITE1_URL",
|
||||
"description": "n8n instance URL"
|
||||
},
|
||||
{
|
||||
"name": "N8N_SITE1_API_KEY",
|
||||
"description": "n8n API key",
|
||||
"isSecret": true
|
||||
},
|
||||
{
|
||||
"name": "SUPABASE_SITE1_URL",
|
||||
"description": "Supabase project URL"
|
||||
},
|
||||
{
|
||||
"name": "SUPABASE_SITE1_SERVICE_ROLE_KEY",
|
||||
"description": "Supabase service role key",
|
||||
"isSecret": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
64
smithery.yaml
Normal file
64
smithery.yaml
Normal file
@@ -0,0 +1,64 @@
|
||||
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml
|
||||
|
||||
startCommand:
|
||||
type: stdio
|
||||
configSchema:
|
||||
# JSON Schema defining the configuration options for the MCP.
|
||||
type: object
|
||||
required:
|
||||
- masterApiKey
|
||||
properties:
|
||||
masterApiKey:
|
||||
type: string
|
||||
description: Master API key for authentication. Generate with python -c "import secrets; print(secrets.token_urlsafe(32))"
|
||||
wordpressSite1Url:
|
||||
type: string
|
||||
description: WordPress site URL (e.g., https://example.com)
|
||||
wordpressSite1Username:
|
||||
type: string
|
||||
description: WordPress admin username
|
||||
wordpressSite1AppPassword:
|
||||
type: string
|
||||
description: WordPress Application Password (generate in WP admin > Users > Profile > Application Passwords)
|
||||
giteaSite1Url:
|
||||
type: string
|
||||
description: Gitea instance URL (e.g., https://gitea.example.com)
|
||||
giteaSite1Token:
|
||||
type: string
|
||||
description: Gitea API token
|
||||
n8nSite1Url:
|
||||
type: string
|
||||
description: n8n instance URL (e.g., https://n8n.example.com)
|
||||
n8nSite1ApiKey:
|
||||
type: string
|
||||
description: n8n API key
|
||||
supabaseSite1Url:
|
||||
type: string
|
||||
description: Supabase project URL
|
||||
supabaseSite1ServiceRoleKey:
|
||||
type: string
|
||||
description: Supabase service role key
|
||||
commandFunction:
|
||||
# A function that produces the CLI command to start the MCP on stdio.
|
||||
|-
|
||||
(config) => {
|
||||
const env = { MASTER_API_KEY: config.masterApiKey };
|
||||
if (config.wordpressSite1Url) {
|
||||
env.WORDPRESS_SITE1_URL = config.wordpressSite1Url;
|
||||
env.WORDPRESS_SITE1_USERNAME = config.wordpressSite1Username || '';
|
||||
env.WORDPRESS_SITE1_APP_PASSWORD = config.wordpressSite1AppPassword || '';
|
||||
}
|
||||
if (config.giteaSite1Url) {
|
||||
env.GITEA_SITE1_URL = config.giteaSite1Url;
|
||||
env.GITEA_SITE1_TOKEN = config.giteaSite1Token || '';
|
||||
}
|
||||
if (config.n8nSite1Url) {
|
||||
env.N8N_SITE1_URL = config.n8nSite1Url;
|
||||
env.N8N_SITE1_API_KEY = config.n8nSite1ApiKey || '';
|
||||
}
|
||||
if (config.supabaseSite1Url) {
|
||||
env.SUPABASE_SITE1_URL = config.supabaseSite1Url;
|
||||
env.SUPABASE_SITE1_SERVICE_ROLE_KEY = config.supabaseSite1ServiceRoleKey || '';
|
||||
}
|
||||
return { command: 'uvx', args: ['mcphub-server'], env };
|
||||
}
|
||||
Reference in New Issue
Block a user