Doubao MCP Agent
ToolKit lokaler Skill-Agent
Ein lokaler Skill-Assistent auf Basis des MCP-Protokolls (Model Context Protocol), der benutzerdefinierte Skills wie Taschenrechner und Wetterabfragen unterstützt und eine Web-Oberfläche sowie API-Schnittstellen bietet.
Projektstruktur
..
├── .env # 大模型 API 配置
├── chat_history.db # SQLite 对话历史数据库(自动生成)
├── index.html # 前端 Web 界面
├── main.py # 主入口(命令行界面)
├── mcp_server.py # MCP 服务端(核心)
├── server.py # Flask 后端服务
├── requirements.txt # 依赖清单
├── README.md # 项目说明
├── tree.txt # 目录结构
├── client/ # 客户端目录
│ ├── doubao_mcp_client.py # 豆包 API 客户端
│ └── __init__.py
├── config/ # 配置目录
│ ├── settings.py # 全局配置
│ └── __init__.py
└── skills/ # 技能实现目录
├── calculator.py # 计算器技能
├── weather.py # 天气查询技能
├── web_search/ # 网络搜索技能目录
│ └── web_search.py # DuckDuckGo搜索实现
| └── SKILL.md # skill描述
| └── _init_.py
└── __init__.pyRelated MCP server: MCP Connection Hub
Tech-Stack
Backend-Framework: Python + Flask für den Web-Service, bietet RESTful API und SSE-Streaming-Schnittstellen.
KI-Protokoll & Modellaufruf: Basiert auf dem OpenAI-kompatiblen SDK zur Anbindung von Large Language Model APIs, unterstützt Modelle im OpenAI-Format wie Doubao.
Kernprotokoll: MCP (Model Context Protocol) zur Standardisierung von Tool-Aufrufen sowie zur einheitlichen Skill-Registrierung und -Steuerung.
Asynchrone Architektur: asyncio-asynchrone Verarbeitung + Thread-Pool-Isolierung zur Lösung von Blockaden bei asynchronen Aufrufen in der synchronen Flask-Umgebung.
Datenpersistenz: SQLite zur Speicherung des Dialogkontexts über mehrere Sitzungen hinweg, unterstützt Sitzungsverwaltung und das Laden von Historien.
Skill-Plugin-System: Modulares Skill-System, unterstützt erweiterbare Tools wie Taschenrechner, Wetter, Websuche usw.
Frontend: Native HTML/JS-Weboberfläche, unterstützt Markdown-Rendering, Streaming-Schreibeffekte und die Anzeige von Gedankengängen (Chain of Thought).
Engineering: API-Variablenkonfiguration (.env), Abhängigkeitsmanagement (uv/pip), Fehlerwiederholungs- und Fallback-Mechanismen, Caching von Tool-Aufrufen.
Kernfunktionen
✅ Stabile asynchrone Verarbeitung - Problem behoben, bei dem asyncio.run() direkt in Flask-Routen verwendet wurde; stattdessen wird ein Thread-Pool zur Ausführung asynchroner Funktionen genutzt.
✅ Persistenz der Dialoghistorie - Verwendung von SQLite zur Speicherung der Dialoghistorie, kein Verlust bei Neustart des Dienstes, Unterstützung für Multi-Session-Management.
✅ Fehlertoleranz bei Tool-Aufrufen - Automatischer Wiederholungsmechanismus; bei Fehlschlagen eines Tool-Aufrufs erfolgt ein Fallback auf eine direkte Antwort des Modells.
✅ MCP-Tool-Caching - Zwischenspeicherung der Tool-Liste nach dem ersten Abruf, um wiederholten Initialisierungsaufwand zu reduzieren.
✅ Streaming-Ausgabe - Implementierung einer vollständigen SSE-Streaming-Schnittstelle für eine wortweise Ausgabe.
✅ Hinweise zu Tool-Aufrufen - Bei Aufruf eines Skills wird der Hinweis "【Tool aufgerufen: {Tool-Name}】" angezeigt.
✅ Multi-Plattform-Unterstützung - Bietet sowohl eine Web-Oberfläche als auch eine Befehlszeilenschnittstelle (CLI).
✅ Umfangreiche Skills - Integrierte Skills für Taschenrechner, Wetterabfragen und Websuche.
✅ Skill-Management - Visuelle Skill-Verwaltung im Frontend, Skills können frei aktiviert/deaktiviert werden.
✅ Markdown-Rendering - Unterstützung für Markdown-Antworten, inklusive Code-Highlighting, Tabellen, Listen, mathematischen Formeln usw.
✅ Anzeige von Gedankengängen - Aufklappbare Anzeige des KI-Denkprozesses zur besseren Nachvollziehbarkeit der Schlussfolgerungslogik.
✅ Multi-Session-Management - Unterstützung für die Erstellung mehrerer unabhängiger Dialoge, wobei jeder Dialog seine Historie separat speichert.
✅ Laden der Dialoghistorie - Automatisches Laden der Historie beim Wechsel zwischen Sitzungen, vollständige Aufzeichnung des Interaktionsverlaufs.
Systemanforderungen
Python 3.11+
openaiSDK(api)
uv Paketmanager (empfohlen) oder pip
Installation
Methode 1: Verwendung des uv-Paketmanagers (empfohlen)
uv installieren
# Windows Set-ExecutionPolicy RemoteSigned -Scope CurrentUser irm https://astral.sh/uv/install.ps1 | iex # macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | shProjekt klonen
git clone https://github.com/taffy123d/Doubao-MCP-agent cd <项目目录>Virtuelle Umgebung erstellen
uv venvAbhängigkeiten installieren
uv sync
Methode 2: Verwendung von pip
Projekt klonen
git clone https://github.com/taffy123d/Doubao-MCP-agent cd <项目目录>Virtuelle Umgebung erstellen
python -m venv venvVirtuelle Umgebung aktivieren
# Windows venv\Scripts\activate # macOS / Linux source venv/bin/activateAbhängigkeiten installieren
pip install -r requirements.txt
Konfiguration
API-Schlüssel im Frontend konfigurieren
Oder API-Schlüssel in der
.env-Datei eintragen:
# OpenAI 兼容格式的 API 配置
OPENAI_API_KEY=你的API密钥
OPENAI_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
OPENAI_MODEL=你的模型IDAusführung
Methode 1: Vollständiger Start (empfohlen)
uv run server.py
#或者
python server.pyFrontend-Zugriff:
http://localhost:5000API-Schnittstelle:
http://localhost:5000/api/*
Methode 2: Befehlszeilenschnittstelle (CLI)
uv run main.py
#或者
python main.pyDialog direkt im Terminal führen
Unterstützt Multi-Turn-Dialoge und Historie
Eingabe von
clearoder清除历史löscht die DialoghistorieEingabe von
exit,quitoder退出beendet das Programm
API-Schnittstellen
Schnittstelle | Methode | Beschreibung |
| GET | Frontend-Seite |
| GET | Gesundheitsprüfung |
| GET | Skill-Liste abrufen |
| GET | Konfiguration abrufen |
| POST | Konfiguration speichern |
| POST | API-Verbindung testen |
| POST | Chat (unterstützt Dialoghistorie) |
| POST | Streaming-Chat (SSE) |
| POST | Dialoghistorie löschen |
| GET | Alle Sitzungen abrufen |
| DELETE | Spezifische Sitzung löschen |
| GET | Sitzungshistorie abrufen |
API-Anfragebeispiele
Chat-Schnittstelle
curl -X POST http://localhost:5000/api/chat \
-H "Content-Type: application/json" \
-d '{
"api_key": "你的API密钥",
"model": "你的模型ID",
"base_url": "https://ark.cn-beijing.volces.com/api/v3",
"message": "北京天气",
"session_id": "default"
}'Streaming-Chat-Schnittstelle
curl -X POST http://localhost:5000/api/chat/stream \
-H "Content-Type: application/json" \
-d '{
"api_key": "你的API密钥",
"model": "你的模型ID",
"base_url": "https://ark.cn-beijing.volces.com/api/v3",
"message": "北京天气",
"session_id": "default"
}'Historie löschen
curl -X POST http://localhost:5000/api/chat/clear \
-H "Content-Type: application/json" \
-d '{
"session_id": "default"
}'Verwendung
Web-Oberfläche
API konfigurieren
API-Key und Endpoint-ID im Konfigurationspanel auf der linken Seite eingeben.
Auf "Test" klicken, um die Verbindung zu verifizieren.
Chatten
Frage in das Eingabefeld eingeben.
Unterstützte Skills:
Taschenrechner:
计算 123+456Wetterabfrage:
北京天气Websuche:
搜索 最新AI新闻
Skill-Management
Auf "🔧 Skill-Management" links klicken, um das Panel zu öffnen.
Alle verfügbaren Skills und deren Beschreibungen einsehen.
Schalter zum Aktivieren/Deaktivieren von Skills nutzen.
Nur aktivierte Skills werden aufgerufen.
Multi-Session-Management
Auf "💬 Dialog-Management" links klicken, um das Panel zu öffnen.
Auf "➕ Neuer Dialog" klicken, um eine neue Sitzung zu erstellen.
Auf einen Eintrag in der Liste klicken, um zur entsprechenden Sitzung zu wechseln.
Auf 🗑️ klicken, um nicht benötigte Dialoge zu löschen.
Jeder Dialog speichert seine Historie separat.
Ergebnisse anzeigen
Das System ruft automatisch den entsprechenden Skill auf und liefert das Ergebnis.
Unterstützung für Markdown-Antworten (Code-Highlighting, Tabellen, Listen etc.).
Auf "🧠 Denkprozess" klicken, um die Schlussfolgerungslogik der KI einzusehen.
Unterstützung für Multi-Turn-Dialoge.
Befehlszeilenschnittstelle (CLI)
Programm ausführen
python main.pyFrage eingeben
Frage direkt im Terminal eingeben.
Unterstützte Skills:
Taschenrechner:
计算 123+456Wetterabfrage:
北京天气
Ergebnisse anzeigen
Das System ruft automatisch den entsprechenden Skill auf und liefert das Ergebnis.
Unterstützung für Multi-Turn-Dialoge.
Eingabe von
clearoder清除历史löscht die Dialoghistorie.
Wie man neue Skills hinzufügt
Schritt 1: Skill-Datei erstellen
Erstellen Sie eine neue Skill-Datei im Verzeichnis skills/, z. B. my_skill.py:
"""我的自定义技能"""
from mcp.server.fastmcp import FastMCP
def register_my_skill(mcp: FastMCP):
"""注册技能到 MCP 服务"""
@mcp.tool()
def my_skill(param1: str, param2: int = 1) -> str:
"""
我的自定义技能描述
示例:my_skill(param1="值", param2=2)
Args:
param1: 参数1描述
param2: 参数2描述(默认值)
Returns:
技能执行结果
"""
try:
# 技能逻辑实现
result = f"处理结果: {param1} - {param2}"
return result
except Exception as e:
return f"处理失败: {str(e)}"Schritt 2: Skill registrieren
Bearbeiten Sie skills/__init__.py und fügen Sie die Registrierungsfunktion für den neuen Skill hinzu:
from .calculator import register_calculator_tool
from .weather import register_weather_tool
from .my_skill import register_my_skill
__all__ = [
"register_calculator_tool",
"register_weather_tool",
"register_my_skill"
]Schritt 3: MCP-Dienst aktualisieren
Bearbeiten Sie mcp_server.py und fügen Sie die Registrierung des neuen Skills hinzu:
from skills import register_calculator_tool, register_weather_tool, register_my_skill
# 注册所有技能工具
register_calculator_tool(mcp)
register_weather_tool(mcp)
register_my_skill(mcp) # 添加这一行Schritt 4: Dienst neu starten
Starten Sie den MCP-Dienst und den Backend-Dienst neu, damit der neue Skill verwendet werden kann.
Skill-Entwicklungsrichtlinien
Dateibenennung: Verwenden Sie Kleinbuchstaben und Unterstriche.
Funktionsbenennung: Format
register_xxx_tool.Tool-Dekorator: Verwenden Sie
@mcp.tool().Docstrings: Enthalten Funktionsbeschreibung, Beispiele und Parametererklärungen.
Fehlerbehandlung: Fangen Sie Ausnahmen ab und geben Sie benutzerfreundliche Hinweise zurück.
Parametertypen: Verwenden Sie Typannotationen.
Wie man komplexe Skills erstellt (mit SKILL.md)
Für komplexere Skills wird empfohlen, ein separates Skill-Verzeichnis zu erstellen, das die Implementierung und eine SKILL.md-Beschreibungsdatei enthält.
Verzeichnisstruktur
skills/
└── my_complex_skill/ # skill 目录
├── __init__.py # 导出配置(必选)
├── my_skill.py # 技能实现(必选)
└── SKILL.md # skill 描述文档(必选)Schritt 1: Skill-Verzeichnis und Implementierungsdatei erstellen
Erstellen Sie ein neues Skill-Verzeichnis im Verzeichnis skills/, z. B. skills/my_complex_skill/
1.1 Skill-Implementierungsdatei my_skill.py erstellen
"""我的复杂技能实现"""
from mcp.server.fastmcp import FastMCP
from duckduckgo_search import AsyncDuckDuckGoSearcher # 示例依赖
def register_my_complex_skill(mcp: FastMCP):
"""注册复杂技能到 MCP 服务"""
@mcp.tool()
async def my_complex_skill(query: str, limit: int = 5) -> str:
"""
我的复杂技能描述
Args:
query: 查询关键词
limit: 返回结果数量,默认5
Returns:
格式化的搜索结果
"""
try:
async with AsyncDuckDuckGoSearcher() as searcher:
results = await searcher.atext(query, max_results=limit)
# 处理并返回结果
return f"找到 {len(results)} 条结果..."
except Exception as e:
return f"搜索失败: {str(e)}"1.2 __init__.py zur Konfigurationsexportierung erstellen
"""my_complex_skill - 我的复杂技能"""
from .my_skill import register_my_complex_skill
__all__ = ["register_my_complex_skill"]1.3 SKILL.md-Beschreibungsdokument erstellen
# 我的复杂技能
## 功能描述
一句话描述技能功能...
## 使用场景
### ✅ 适用场景
- 场景1
- 场景2
## 参数说明
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|--------|------|
| query | string | 是 | - | 查询关键词 |
## 使用示例
```python
# 示例1
my_complex_skill(query="关键词")Format der Rückgabeergebnisse
Ergebnis 1: xxx
Ergebnis 2: xxx
Fehlerbehandlung
Fehlertyp | Vorgehensweise |
Netzwerkfehler | Freundliche Fehlermeldung zurückgeben |
Hinweise
Hinweis 1
Hinweis 2
### 步骤 2:更新 skills/__init__.py
```python
from .calculator import register_calculator_tool
from .weather import register_weather_tool
from .web_search import register_web_search_tool
from .my_complex_skill import register_my_complex_skill # 新增
__all__ = [
"register_calculator_tool",
"register_weather_tool",
"register_web_search_tool",
"register_my_complex_skill" # 新增
]Schritt 3: mcp_server.py aktualisieren
from skills import (
register_calculator_tool,
register_weather_tool,
register_web_search_tool,
register_my_complex_skill # 新增
)
# 注册所有技能工具
register_calculator_tool(mcp)
register_weather_tool(mcp)
register_web_search_tool(mcp)
register_my_complex_skill(mcp) # 新增Schritt 4: Zusätzliche Abhängigkeiten installieren (falls erforderlich)
Wenn der neue Skill zusätzliche Python-Pakete benötigt, fügen Sie diese mit uv add hinzu oder tragen Sie sie in die requirements.txt ein:
uv add 包名称
或
包名称 >=版本号 #requirements.txtFühren Sie dann aus:
uv sync
# 或
pip install 包名称Schritt 5: Dienst neu starten
Starten Sie den Dienst neu, damit der neue Skill verwendet werden kann.
SKILL.md-Spezifikation
Feld | Erforderlich | Beschreibung |
# Titel | Ja | Skill-Name |
## Funktionsbeschreibung | Ja | Ein-Satz-Beschreibung der Skill-Funktion |
## Anwendungsfälle | Empfohlen | Auflistung geeigneter Szenarien |
## Parameterbeschreibung | Empfohlen | Tabellarische Erläuterung der Parameter |
## Anwendungsbeispiele | Empfohlen | Code- und Dialogbeispiele |
## Format der Rückgabeergebnisse | Empfohlen | Erläuterung der Struktur des Rückgabeinhalts |
## Fehlerbehandlung | Empfohlen | Art der Fehlerbehandlung |
## Hinweise | Empfohlen | Nutzungshinweise |
Beispiel-Skills
Taschenrechner-Skill
Funktion: Unterstützt Addition, Subtraktion, Multiplikation, Division, Klammern und Potenzrechnung.
Aufruf:
计算 (10+5)*2
Wetterabfrage-Skill
Funktion: Abfrage von Stadtwetter und Vorhersagen.
Aufruf:
上海天气oder北京天气 3天
Websuche-Skill
Funktion: Nutzt DuckDuckGo zur Suche nach aktuellen Informationen.
Aufruf:
搜索 Python最新版本oder搜索 今天科技新闻Abhängigkeit:
ddgs-Bibliothek (pip install duckduckgo-search)
Technische Highlights
Optimierung der asynchronen Verarbeitung - Verwendung eines Thread-Pools zur Ausführung asynchroner Funktionen, um das Problem der Erstellung neuer Event-Loops bei jeder Anfrage zu vermeiden.
Persistenz der Dialoghistorie - SQLite-basierte persistente Speicherung, kein Verlust bei Neustart, Unterstützung für Sitzungsisolierung.
Fehlertoleranz bei Tool-Aufrufen - Automatischer Wiederholungsversuch (2x) bei Fehlern, Fallback auf direkte Modellantwort zur Erhöhung der Robustheit.
MCP-Tool-Caching - Reduzierung des Initialisierungsaufwands, Verbesserung der Reaktionsgeschwindigkeit.
Streaming-Ausgabe - Vollständige SSE-Streaming-Schnittstelle für bessere Benutzererfahrung.
Hinweise zu Tool-Aufrufen - Klare Hinweise bei Tool-Aufrufen zur Verbesserung der Benutzererfahrung.
Multi-Plattform-Unterstützung - Bietet gleichzeitig Web-Oberfläche und CLI.
Skill-Management-System - Visuelle Skill-Verwaltung im Frontend mit flexibler Aktivierung/Deaktivierung.
Markdown-Rendering - Vollständige Markdown-Unterstützung, inklusive Code-Highlighting, Tabellen etc.
Anzeige von Gedankengängen - Aufklappbare Anzeige des KI-Schlussfolgerungsprozesses.
Multi-Session-Management - Vollständige Funktionen zum Erstellen, Wechseln und Löschen von Sitzungen.
Laden der Dialoghistorie - Automatisches Laden und Anzeigen der Sitzungshistorie.
Hinweise
API-Schlüssel-Sicherheit: API-Schlüssel nicht in die Versionskontrolle einchecken.
Skill-Sicherheit: Vermeiden Sie gefährliche Operationen innerhalb von Skills.
Performance-Optimierung: Erwägen Sie bei zeitaufwendigen Operationen die Verwendung asynchroner Verarbeitung.
Fehlerbehandlung: Stellen Sie sicher, dass Skills Ausnahmen elegant behandeln.
Fehlerbehebung
Verbindungsfehler: API-Schlüssel und Netzwerkverbindung prüfen.
Skill reagiert nicht: Prüfen, ob der MCP-Dienst ordnungsgemäß läuft.
Frontend zeigt nichts an: Browser-Konsole auf Fehler prüfen.
Probleme mit Streaming-Schnittstelle: Stabile Netzwerkverbindung sicherstellen, Verbindungsabbrüche vermeiden.
Datenbankfehler: Berechtigungen der Datei
chat_history.dbprüfen, Lese-/Schreibzugriff sicherstellen.
Datenspeicherung
Das Projekt verwendet eine SQLite-Datenbank zur Persistenz der Dialoghistorie:
Datenbankdatei:
chat_history.db(im Projektstammverzeichnis, wird beim ersten Start automatisch generiert).Tabellenstruktur:
CREATE TABLE messages ( id INTEGER PRIMARY KEY AUTOINCREMENT, session_id TEXT NOT NULL, -- 会话ID,支持多会话隔离 role TEXT NOT NULL, -- 角色(user/assistant/tool) content TEXT NOT NULL, -- 消息内容 timestamp DATETIME DEFAULT CURRENT_TIMESTAMP )Historie abfragen: SQLite-Tools oder Befehlszeile verwenden.
sqlite3 chat_history.db "SELECT * FROM messages ORDER BY timestamp DESC LIMIT 10;"
Erweiterungsvorschläge
Weitere Skills: Übersetzung, Aktienabfrage, Nachrichten usw. hinzufügen.
Mehrsprachigkeit: Mehrsprachige Benutzeroberfläche hinzufügen.
Deployment-Optimierung: Containerisierung mit Docker.
Skill-Marktplatz: Erstellung eines Marktplatzes zum Teilen und Herunterladen von Skills.
Modellwechsel: Unterstützung für den Wechsel zwischen verschiedenen Large Language Models.
Änderungsprotokoll
2026-03-29 Großes Update
Upgrade der API-Aufrufmethode
httpx → OpenAI SDK: Alle API-Aufrufe wurden von direkten
httpx-HTTP-Anfragen auf dasopenai>=1.0.0SDK umgestellt.Umbenennung von Konfigurationsfeldern:
DOUBAO_API_KEY→OPENAI_API_KEYDOUBAO_ENDPOINT_ID→OPENAI_MODELDOUBAO_BASE_URL→OPENAI_BASE_URL(Suffix/chat/completionsentfernt).
Optimierung der Tool-Aufrufe
Schema-Bereinigung: Automatische Entfernung von Feldern wie
title,defaultetc., die von der Doubao-API nicht unterstützt werden.Beschreibung-Bereinigung: Komprimierung überflüssiger Leerzeichen, Formatoptimierung.
Nachrichtenkonvertierung: Funktion
_msg_to_dict()hinzugefügt, um das vom OpenAI SDK zurückgegebeneChatCompletionMessage-Objekt korrekt zu verarbeiten.Zweiter Aufruf: Problem mit dem Nachrichtenformat bei Zweitanfragen nach einem Tool-Aufruf behoben.
Fehlerbehebungen
✅ Fehler "Object of type ChatCompletionMessage is not JSON serializable" behoben.
✅ Problem bei der Typkonvertierung beim Speichern der Nachrichtenhistorie behoben.
✅ Detaillierte Stack-Traces für Ausnahmen zur einfacheren Fehlersuche hinzugefügt.
Architekturverbesserungen
Hilfsfunktion
_msg_to_dict()hinzugefügt, um die Nachrichtenformatkonvertierung zu vereinheitlichen.API-Typ-Erkennung hinzugefügt (Xunfei-API überspringt automatisch den
tools-Parameter).Fehlerbehandlung und Protokollierung der
chat()-Route optimiert.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Agent-first skill marketplace with USK open standard for Claude, Cursor, Gemini, Codex CLI.
Decision Layer for AI Agents — 58+ tools, Advisor, MCP. Free key: POST /v1/register {}.
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA versatile Model Context Protocol server that enables AI assistants to manage calendars, track tasks, handle emails, search the web, and control smart home devices.23-
- FlicenseNot gradedqualityFmaintenanceA unified Model Context Protocol Gateway that bridges LLM interfaces with various tools and services, providing OpenAI API compatibility and supporting both synchronous and asynchronous tool execution.1-
- FlicenseNot gradedqualityDmaintenanceA comprehensive demonstration server that provides tools for calculations, weather, and note management alongside an interactive web interface. It showcases how AI assistants can seamlessly interact with external data sources and functions using the Model Context Protocol.-
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to operate Huawei Cloud resources (ECS, OBS, GaussDB, etc.) through conversational workflows via the Model Context Protocol.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/taffy123d/LocalSkill-MCP-Agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server