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:
airano
2026-02-19 14:10:54 +03:30
parent 7a16a260f1
commit c57fd666c9
3 changed files with 138 additions and 0 deletions

View File

@@ -1,3 +1,5 @@
<!-- mcp-name: io.github.airano-ir/mcphub -->
# MCP Hub
<div align="center">

72
server.json Normal file
View 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
View 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 };
}