Spaces:
Runtime error
Runtime error
Upload app.py with huggingface_hub
Browse files
app.py
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
import pandas as pd
|
| 3 |
+
|
| 4 |
+
# MCP Server Katalog
|
| 5 |
+
data = {
|
| 6 |
+
"Name": [
|
| 7 |
+
"solana-mcp-server", "germany-mcp-server", "agriculture-mcp-server",
|
| 8 |
+
"space-mcp-server", "aviation-mcp-server", "eu-company-mcp-server",
|
| 9 |
+
"openmeteo-mcp-server", "cybersecurity-mcp-server", "medical-data-mcp-server",
|
| 10 |
+
"political-finance-mcp-server", "supply-chain-mcp-server", "energy-grid-mcp-server",
|
| 11 |
+
"crossref-academic-mcp-server", "llm-benchmark-mcp-server",
|
| 12 |
+
"mcp-appstore-server", "api-to-mcp-converter", "agent-memory-mcp-server",
|
| 13 |
+
"agent-directory-mcp-server", "agent-reputation-mcp-server",
|
| 14 |
+
"agent-feedback-mcp-server", "prompt-library-mcp-server",
|
| 15 |
+
"agent-coordination-mcp-server", "agent-workflow-mcp-server",
|
| 16 |
+
"agent-analytics-mcp-server", "x402-mcp-server",
|
| 17 |
+
"agent-interface-standard", "agent-validator-mcp-server",
|
| 18 |
+
"business-bridge-mcp-server", "agent-commerce-mcp-server",
|
| 19 |
+
"agent-identity-mcp-server", "a2a-protocol-mcp-server",
|
| 20 |
+
"agentic-product-protocol-mcp", "agent-policy-gateway-mcp",
|
| 21 |
+
"hive-mind-mcp-server", "agent-context-optimizer-mcp",
|
| 22 |
+
"legal-court-mcp-server", "agent-server-card-mcp", "agent-audit-trail-mcp"
|
| 23 |
+
],
|
| 24 |
+
"Category": [
|
| 25 |
+
"Data", "Data", "Data", "Data", "Data", "Data", "Data", "Data", "Data",
|
| 26 |
+
"Data", "Data", "Data", "Data", "Data",
|
| 27 |
+
"Agent Infrastructure", "Agent Infrastructure", "Agent Infrastructure",
|
| 28 |
+
"Agent Infrastructure", "Agent Infrastructure", "Agent Infrastructure",
|
| 29 |
+
"Agent Infrastructure", "Agent Infrastructure", "Agent Infrastructure",
|
| 30 |
+
"Agent Infrastructure", "Agent Infrastructure",
|
| 31 |
+
"Business-to-Agent", "Business-to-Agent", "Business-to-Agent",
|
| 32 |
+
"Business-to-Agent", "Business-to-Agent",
|
| 33 |
+
"Agent Protocols", "E-Commerce", "Compliance",
|
| 34 |
+
"Swarm Intelligence", "Agent Infrastructure",
|
| 35 |
+
"Data", "Agent Infrastructure", "Compliance"
|
| 36 |
+
],
|
| 37 |
+
"Description": [
|
| 38 |
+
"Solana blockchain - wallets, tokens, DeFi, security",
|
| 39 |
+
"German government and public authority data",
|
| 40 |
+
"FAO agricultural data and statistics",
|
| 41 |
+
"NASA and ESA space data",
|
| 42 |
+
"Aviation and flight tracking data",
|
| 43 |
+
"EU company registry data",
|
| 44 |
+
"Weather and climate via Open-Meteo",
|
| 45 |
+
"CVE vulnerability and security data",
|
| 46 |
+
"WHO health and medical data",
|
| 47 |
+
"FEC campaign finance data",
|
| 48 |
+
"UN Comtrade supply chain data",
|
| 49 |
+
"CO2 intensity, electricity mix, energy prices",
|
| 50 |
+
"Scientific papers, citations, authors",
|
| 51 |
+
"LLM comparison, benchmarks, pricing",
|
| 52 |
+
"MCP server hub with 49+ servers",
|
| 53 |
+
"Convert OpenAPI specs to MCP servers",
|
| 54 |
+
"Persistent memory for AI agents",
|
| 55 |
+
"Service registry for AI agents",
|
| 56 |
+
"Trust scores for AI agents",
|
| 57 |
+
"Quality signals for AI agents",
|
| 58 |
+
"Prompt template library",
|
| 59 |
+
"Multi-agent messaging",
|
| 60 |
+
"Workflow templates for agents",
|
| 61 |
+
"Usage analytics for agents",
|
| 62 |
+
"Micropayments via x402 protocol",
|
| 63 |
+
"Schema.org for agents",
|
| 64 |
+
"Agent accessibility validator",
|
| 65 |
+
"Shopify/WordPress/Calendly connectors",
|
| 66 |
+
"Agent purchase protocol",
|
| 67 |
+
"OAuth for AI agents",
|
| 68 |
+
"Google A2A Protocol bridge",
|
| 69 |
+
"Product discovery for shopping agents",
|
| 70 |
+
"PII detection, guardrails, GDPR checks",
|
| 71 |
+
"Collective decision-making for swarms",
|
| 72 |
+
"Context window optimization",
|
| 73 |
+
"CourtListener legal data, 3M+ decisions",
|
| 74 |
+
".well-known server discovery",
|
| 75 |
+
"Immutable audit logging for agents"
|
| 76 |
+
],
|
| 77 |
+
"Tools": [
|
| 78 |
+
11, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5,
|
| 79 |
+
6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
| 80 |
+
4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
|
| 81 |
+
],
|
| 82 |
+
"API Key": [
|
| 83 |
+
"Yes", "No", "No", "Yes", "Yes", "No", "No", "No", "No",
|
| 84 |
+
"Yes", "No", "No", "No", "No",
|
| 85 |
+
"No", "No", "No", "No", "No", "No", "No", "No", "No", "No", "No",
|
| 86 |
+
"No", "No", "No", "No", "No", "No", "No", "No", "No", "No", "No", "No", "No"
|
| 87 |
+
],
|
| 88 |
+
"Install": [
|
| 89 |
+
"pip install solana-mcp-server", "pip install germany-mcp-server",
|
| 90 |
+
"pip install agriculture-mcp-server", "pip install space-mcp-server",
|
| 91 |
+
"pip install aviation-mcp-server", "pip install eu-company-mcp-server",
|
| 92 |
+
"pip install openmeteo-mcp-server", "pip install cybersecurity-mcp-server",
|
| 93 |
+
"pip install medical-data-mcp-server", "pip install political-finance-mcp-server",
|
| 94 |
+
"pip install supply-chain-mcp-server", "pip install energy-grid-mcp-server",
|
| 95 |
+
"pip install crossref-academic-mcp-server", "pip install llm-benchmark-mcp-server",
|
| 96 |
+
"pip install mcp-appstore-server", "pip install api-to-mcp-converter",
|
| 97 |
+
"pip install agent-memory-mcp-server", "pip install agent-directory-mcp-server",
|
| 98 |
+
"pip install agent-reputation-mcp-server", "pip install agent-feedback-mcp-server",
|
| 99 |
+
"pip install prompt-library-mcp-server", "pip install agent-coordination-mcp-server",
|
| 100 |
+
"pip install agent-workflow-mcp-server", "pip install agent-analytics-mcp-server",
|
| 101 |
+
"pip install x402-mcp-server", "pip install agent-interface-standard",
|
| 102 |
+
"pip install agent-validator-mcp-server", "pip install business-bridge-mcp-server",
|
| 103 |
+
"pip install agent-commerce-mcp-server", "pip install agent-identity-mcp-server",
|
| 104 |
+
"pip install a2a-protocol-mcp-server", "pip install agentic-product-protocol-mcp",
|
| 105 |
+
"pip install agent-policy-gateway-mcp", "pip install hive-mind-mcp-server",
|
| 106 |
+
"pip install agent-context-optimizer-mcp", "pip install legal-court-mcp-server",
|
| 107 |
+
"pip install agent-server-card-mcp", "pip install agent-audit-trail-mcp"
|
| 108 |
+
]
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
df = pd.DataFrame(data)
|
| 112 |
+
|
| 113 |
+
def search_servers(query, category):
|
| 114 |
+
filtered = df.copy()
|
| 115 |
+
if category and category != "All":
|
| 116 |
+
filtered = filtered[filtered["Category"] == category]
|
| 117 |
+
if query:
|
| 118 |
+
query_lower = query.lower()
|
| 119 |
+
mask = (
|
| 120 |
+
filtered["Name"].str.lower().str.contains(query_lower) |
|
| 121 |
+
filtered["Description"].str.lower().str.contains(query_lower) |
|
| 122 |
+
filtered["Category"].str.lower().str.contains(query_lower)
|
| 123 |
+
)
|
| 124 |
+
filtered = filtered[mask]
|
| 125 |
+
return filtered
|
| 126 |
+
|
| 127 |
+
def get_stats():
|
| 128 |
+
total = len(df)
|
| 129 |
+
categories = df["Category"].value_counts().to_dict()
|
| 130 |
+
total_tools = df["Tools"].sum()
|
| 131 |
+
no_key = len(df[df["API Key"] == "No"])
|
| 132 |
+
stats = f"**{total} MCP Servers** | **{total_tools} Tools** | **{no_key} without API key**\n\n"
|
| 133 |
+
stats += "| Category | Count |\n|---|---|\n"
|
| 134 |
+
for cat, count in sorted(categories.items()):
|
| 135 |
+
stats += f"| {cat} | {count} |\n"
|
| 136 |
+
return stats
|
| 137 |
+
|
| 138 |
+
categories = ["All"] + sorted(df["Category"].unique().tolist())
|
| 139 |
+
|
| 140 |
+
with gr.Blocks(title="MCP Server Explorer", theme=gr.themes.Soft()) as demo:
|
| 141 |
+
gr.Markdown("# MCP Server Explorer")
|
| 142 |
+
gr.Markdown("Browse and search 38 Model Context Protocol servers for AI agents. All servers are open-source and installable via pip.")
|
| 143 |
+
|
| 144 |
+
with gr.Row():
|
| 145 |
+
search_box = gr.Textbox(label="Search", placeholder="Search by name, description, or category...", scale=3)
|
| 146 |
+
category_filter = gr.Dropdown(choices=categories, value="All", label="Category", scale=1)
|
| 147 |
+
|
| 148 |
+
table = gr.Dataframe(
|
| 149 |
+
value=df,
|
| 150 |
+
label="MCP Servers",
|
| 151 |
+
interactive=False,
|
| 152 |
+
wrap=True
|
| 153 |
+
)
|
| 154 |
+
|
| 155 |
+
with gr.Accordion("Statistics", open=False):
|
| 156 |
+
stats_md = gr.Markdown(get_stats())
|
| 157 |
+
|
| 158 |
+
search_box.change(fn=search_servers, inputs=[search_box, category_filter], outputs=table)
|
| 159 |
+
category_filter.change(fn=search_servers, inputs=[search_box, category_filter], outputs=table)
|
| 160 |
+
|
| 161 |
+
gr.Markdown("---")
|
| 162 |
+
gr.Markdown("Built by [AiAgentKarl](https://github.com/AiAgentKarl) | [Dataset](https://huggingface.co/datasets/aiagentkarl/mcp-server-catalog)")
|
| 163 |
+
|
| 164 |
+
demo.launch()
|