Simplify MCP Market selection and add Agentic Scraper links
Browse files- README.md +8 -0
- __pycache__/app.cpython-314.pyc +0 -0
- app.py +16 -21
README.md
CHANGED
|
@@ -16,6 +16,7 @@ Dynamic Agent Studio, kod değiştirmeden çalışma anında bir agent yapıland
|
|
| 16 |
|
| 17 |
- Kullanıcı istediği kadar OpenAPI 3.x veya uzak MCP kaynağı ekler.
|
| 18 |
- Agentic Scraper API key ile onaylı MCP Market entegrasyonları listelenip seçilebilir.
|
|
|
|
| 19 |
- OpenAPI belgesindeki GET operasyonları model araçlarına dönüştürülür.
|
| 20 |
- MCP sunucuları OpenAI Responses API'nin uzak MCP aracı olarak eklenir.
|
| 21 |
- OpenAI veya OpenRouter sağlayıcısı ve uyumlu model seçilebilir.
|
|
@@ -84,3 +85,10 @@ python app.py
|
|
| 84 |
- MCP Market çalıştırmaları Agentic Scraper orkestrasyonu üzerinden OpenRouter modeliyle
|
| 85 |
yürütülür.
|
| 86 |
- Kaynak yapılandırması kalıcı değildir; sayfa oturumu sona erdiğinde silinir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
- Kullanıcı istediği kadar OpenAPI 3.x veya uzak MCP kaynağı ekler.
|
| 18 |
- Agentic Scraper API key ile onaylı MCP Market entegrasyonları listelenip seçilebilir.
|
| 19 |
+
Market bağlantı parametreleri kullanıcıdan istenmez; platform tarafından çözülür.
|
| 20 |
- OpenAPI belgesindeki GET operasyonları model araçlarına dönüştürülür.
|
| 21 |
- MCP sunucuları OpenAI Responses API'nin uzak MCP aracı olarak eklenir.
|
| 22 |
- OpenAI veya OpenRouter sağlayıcısı ve uyumlu model seçilebilir.
|
|
|
|
| 85 |
- MCP Market çalıştırmaları Agentic Scraper orkestrasyonu üzerinden OpenRouter modeliyle
|
| 86 |
yürütülür.
|
| 87 |
- Kaynak yapılandırması kalıcı değildir; sayfa oturumu sona erdiğinde silinir.
|
| 88 |
+
|
| 89 |
+
## Agentic Scraper bağlantıları
|
| 90 |
+
|
| 91 |
+
- [Web sitesi](https://agenticscraper.com/)
|
| 92 |
+
- [Dokümantasyon](https://docs.agenticscraper.com/)
|
| 93 |
+
- [API referansı](https://docs.agenticscraper.com/api-reference/)
|
| 94 |
+
- [MCP Market rehberi](https://docs.agenticscraper.com/users/mcp/)
|
__pycache__/app.cpython-314.pyc
CHANGED
|
Binary files a/__pycache__/app.cpython-314.pyc and b/__pycache__/app.cpython-314.pyc differ
|
|
|
app.py
CHANGED
|
@@ -269,7 +269,6 @@ def preview_market(mcp_id: str, catalog: dict[str, Any]):
|
|
| 269 |
|
| 270 |
def add_market_mcp(
|
| 271 |
mcp_id: str,
|
| 272 |
-
params_text: str,
|
| 273 |
agentic_api_key: str,
|
| 274 |
catalog: dict[str, Any],
|
| 275 |
config: dict[str, Any],
|
|
@@ -283,24 +282,13 @@ def add_market_mcp(
|
|
| 283 |
source_id = _safe_name(f"market_{listing['slug']}", "market")
|
| 284 |
if any(item["id"] == source_id for item in config["sources"]):
|
| 285 |
raise ValueError(f"`{listing['name']}` zaten eklendi.")
|
| 286 |
-
params = json.loads((params_text or "").strip() or "{}")
|
| 287 |
-
if not isinstance(params, dict):
|
| 288 |
-
raise TypeError("MCP parametreleri bir JSON nesnesi olmalı.")
|
| 289 |
-
required_schema = listing.get("requiredUserParamsSchema") or {}
|
| 290 |
-
missing = [
|
| 291 |
-
name
|
| 292 |
-
for name in required_schema.get("required", [])
|
| 293 |
-
if name not in params or params[name] in {"", None}
|
| 294 |
-
]
|
| 295 |
-
if missing:
|
| 296 |
-
raise ValueError(f"Eksik MCP parametreleri: {', '.join(missing)}")
|
| 297 |
config["sources"].append(
|
| 298 |
{
|
| 299 |
"id": source_id,
|
| 300 |
"type": "market_mcp",
|
| 301 |
"name": listing["name"],
|
| 302 |
"mcp_id": listing["id"],
|
| 303 |
-
"params":
|
| 304 |
"tool_names": [
|
| 305 |
tool["name"] for tool in listing.get("tools", []) if tool.get("isEnabled", True)
|
| 306 |
],
|
|
@@ -396,7 +384,7 @@ def _config_summary(config: dict[str, Any]) -> dict[str, Any]:
|
|
| 396 |
"mcp_id": item["mcp_id"],
|
| 397 |
"tools": len(item.get("tool_names", [])),
|
| 398 |
"monetization": item.get("monetization", "free"),
|
| 399 |
-
"params": "
|
| 400 |
}
|
| 401 |
)
|
| 402 |
return {"sources": sources, "output_fields": (config or {}).get("output_fields", [])}
|
|
@@ -808,6 +796,19 @@ with gr.Blocks(css=CSS, title="Dynamic Agent Studio") as demo:
|
|
| 808 |
"Bu demoda otomatik kullanım onayı açıktır; yalnızca güvendiğiniz sunucuları ekleyin."
|
| 809 |
)
|
| 810 |
gr.Markdown("### Agentic Scraper MCP Market")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 811 |
with gr.Row():
|
| 812 |
with gr.Column(scale=4):
|
| 813 |
agentic_key_sources = gr.Textbox(
|
|
@@ -820,12 +821,6 @@ with gr.Blocks(css=CSS, title="Dynamic Agent Studio") as demo:
|
|
| 820 |
label="Onaylı MCP/OpenAPI entegrasyonu",
|
| 821 |
choices=[],
|
| 822 |
)
|
| 823 |
-
market_params = gr.Textbox(
|
| 824 |
-
label="Gerekli kullanıcı parametreleri (JSON)",
|
| 825 |
-
value="{}",
|
| 826 |
-
lines=4,
|
| 827 |
-
placeholder='{"apiKey": "..."}',
|
| 828 |
-
)
|
| 829 |
add_market_button = gr.Button("Seçili Market MCP'sini ekle", variant="primary")
|
| 830 |
with gr.Column(scale=6):
|
| 831 |
market_preview = gr.JSON(label="Market kaydı ve fiyat bilgisi")
|
|
@@ -929,7 +924,7 @@ with gr.Blocks(css=CSS, title="Dynamic Agent Studio") as demo:
|
|
| 929 |
)
|
| 930 |
add_market_button.click(
|
| 931 |
add_market_mcp,
|
| 932 |
-
[market_select,
|
| 933 |
[config_state, source_summary, source_status],
|
| 934 |
)
|
| 935 |
agentic_key_sources.change(
|
|
|
|
| 269 |
|
| 270 |
def add_market_mcp(
|
| 271 |
mcp_id: str,
|
|
|
|
| 272 |
agentic_api_key: str,
|
| 273 |
catalog: dict[str, Any],
|
| 274 |
config: dict[str, Any],
|
|
|
|
| 282 |
source_id = _safe_name(f"market_{listing['slug']}", "market")
|
| 283 |
if any(item["id"] == source_id for item in config["sources"]):
|
| 284 |
raise ValueError(f"`{listing['name']}` zaten eklendi.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 285 |
config["sources"].append(
|
| 286 |
{
|
| 287 |
"id": source_id,
|
| 288 |
"type": "market_mcp",
|
| 289 |
"name": listing["name"],
|
| 290 |
"mcp_id": listing["id"],
|
| 291 |
+
"params": {},
|
| 292 |
"tool_names": [
|
| 293 |
tool["name"] for tool in listing.get("tools", []) if tool.get("isEnabled", True)
|
| 294 |
],
|
|
|
|
| 384 |
"mcp_id": item["mcp_id"],
|
| 385 |
"tools": len(item.get("tool_names", [])),
|
| 386 |
"monetization": item.get("monetization", "free"),
|
| 387 |
+
"params": "MCP Market tarafından çözülür",
|
| 388 |
}
|
| 389 |
)
|
| 390 |
return {"sources": sources, "output_fields": (config or {}).get("output_fields", [])}
|
|
|
|
| 796 |
"Bu demoda otomatik kullanım onayı açıktır; yalnızca güvendiğiniz sunucuları ekleyin."
|
| 797 |
)
|
| 798 |
gr.Markdown("### Agentic Scraper MCP Market")
|
| 799 |
+
gr.Markdown(
|
| 800 |
+
"""
|
| 801 |
+
**Agentic Scraper**, scraping işlerini, özel agent çalıştırmalarını ve onaylı
|
| 802 |
+
MCP/OpenAPI araçlarını tek API üzerinden kullanmayı sağlayan bir agent platformudur.
|
| 803 |
+
MCP Market seçildiğinde yalnızca Agentic Scraper API key'iniz gerekir; Market
|
| 804 |
+
entegrasyonunun bağlantı parametreleri platform tarafından çözülür.
|
| 805 |
+
|
| 806 |
+
[Web sitesi](https://agenticscraper.com/) ·
|
| 807 |
+
[Dokümantasyon](https://docs.agenticscraper.com/) ·
|
| 808 |
+
[API referansı](https://docs.agenticscraper.com/api-reference/) ·
|
| 809 |
+
[MCP Market rehberi](https://docs.agenticscraper.com/users/mcp/)
|
| 810 |
+
"""
|
| 811 |
+
)
|
| 812 |
with gr.Row():
|
| 813 |
with gr.Column(scale=4):
|
| 814 |
agentic_key_sources = gr.Textbox(
|
|
|
|
| 821 |
label="Onaylı MCP/OpenAPI entegrasyonu",
|
| 822 |
choices=[],
|
| 823 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 824 |
add_market_button = gr.Button("Seçili Market MCP'sini ekle", variant="primary")
|
| 825 |
with gr.Column(scale=6):
|
| 826 |
market_preview = gr.JSON(label="Market kaydı ve fiyat bilgisi")
|
|
|
|
| 924 |
)
|
| 925 |
add_market_button.click(
|
| 926 |
add_market_mcp,
|
| 927 |
+
[market_select, agentic_key_sources, market_catalog_state, config_state],
|
| 928 |
[config_state, source_summary, source_status],
|
| 929 |
)
|
| 930 |
agentic_key_sources.change(
|