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
|
# MCP Hub
|
||||||
|
|
||||||
<div align="center">
|
<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