MCP Server
Model Context Protocol Server für Mapfolio - Ermöglicht KI-Assistenten die Interaktion mit Mapfolio-Daten
Übersicht
Der Mapfolio MCP Server ist ein Model Context Protocol (MCP) Server, der KI-Assistenten und anderen MCP-kompatiblen Clients ermöglicht, mit Mapfolios Daten und Operationen zu interagieren. Er bietet programmatischen Zugriff auf Unternehmen, Projekte, Benutzer, LinkedIn-Profile und administrative Funktionen.
Was ist MCP?
Model Context Protocol (MCP) ist ein offenes Protokoll, das KI-Assistenten ermöglicht, sicher auf externe Datenquellen und Tools zuzugreifen. MCP-Server stellen Funktionen über eine standardisierte Schnittstelle bereit, die es KI-Assistenten ermöglicht:
- Daten abzufragen und abzurufen
- Operationen durchzuführen
- Auf Ressourcen zuzugreifen
- Mit externen Systemen zu integrieren
Funktionen
Der Mapfolio MCP Server bietet umfassende Funktionalität:
Unternehmensdaten
- Unternehmen mit erweiterten Filtern suchen
- Unternehmensdetails nach ID abrufen
- Unternehmen nach Kanton und Anfangsbuchstaben abrufen
- Zufällige Unternehmen für Stichproben abrufen
- Zugriff auf Unternehmensbesuchsstatistiken
Projektverwaltung
- Projekte erstellen und verwalten
- Benutzerprojekte auflisten und filtern
- Projektdetails aktualisieren
- Projekte löschen
- Unternehmen zu Projekten hinzufügen und entfernen
Benutzerprofile
- Benutzerprofilinformationen abrufen
- Profileinstellungen aktualisieren
- Benutzerprojekte auflisten
- API-Schlüssel verwalten
LinkedIn-Integration
- LinkedIn-Profil Daten abrufen
- LinkedIn-Profile suchen
- Zugriff auf Verbindungsinformationen
- Profilversionsverlauf anzeigen
- LinkedIn-Unternehmensdaten abrufen
Administrative Operationen
- Alle Benutzer auflisten (nur Admin)
- Neue Benutzer erstellen (nur Admin)
- API-Schlüssel verwalten (nur Admin)
- Zugriff auf Admin-Dashboard-Statistiken
Statistiken
- Aggregierte Unternehmensstatistiken abrufen
- Kantonsbezogene Zählungen anzeigen
- Zugriff auf buchstabenbasierte Zählungen
- Zwei-Buchstaben-Kombinationsstatistiken abrufen
Installation
Voraussetzungen
- Node.js >= 20.0.0
- npm >= 10.0.0
- Zugriff auf Mapfolio Supabase-Instanz
Einrichtung
- Abhängigkeiten installieren:
cd mcp-server
npm install
- Umgebungsvariablen konfigurieren:
cp .env.example .env
Bearbeiten Sie .env und konfigurieren Sie:
# Mapfolio API URL (Standard: https://mapfolio.app)
MAPFOLIO_API_URL=https://mapfolio.app
# Transporttyp: 'stdio' (Standard) oder 'http' für Remote-Zugriff
MCP_TRANSPORT=stdio
# HTTP-Port (nur verwendet, wenn MCP_TRANSPORT=http)
MCP_HTTP_PORT=3001
# Optional: Standard-Authentifizierung (kann über MCP-Kontext oder HTTP-Header bereitgestellt werden)
MAPFOLIO_API_KEY=mapf_your_api_key_here
MAPFOLIO_JWT_TOKEN=your-jwt-token-here
- Server erstellen:
npm run build
Verwendung
Server starten
Lokale Entwicklung (stdio Transport)
Der MCP-Server verwendet standardmäßig stdio Transport (Standard MCP-Protokoll):
npm start
Für Entwicklung mit Auto-Reload:
npm run dev
HTTP Transport (für Remote-Zugriff)
Um den Server mit HTTP Transport für lokale Tests zu starten:
MCP_TRANSPORT=http MCP_HTTP_PORT=3001 npm start
Dies startet einen HTTP-Server auf Port 3001, der JSON-RPC 2.0-Anfragen über HTTP POST akzeptiert.
Vercel Deployment (Remote-Zugriff)
Der MCP-Server ist automatisch über HTTP verfügbar, wenn er auf Vercel bereitgestellt wird:
- Endpoint:
https://your-app.vercel.app/api/mcp - Protokoll: JSON-RPC 2.0 über HTTP POST
- Authentifizierung: Über
X-API-KeyHeader oderAuthorization: Bearer <token>Header
Beispielanfrage:
curl -X POST https://your-app.vercel.app/api/mcp \
-H "Content-Type: application/json" \
-H "X-API-Key: mapf_your_api_key" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
MCP Client Konfiguration
Claude Desktop
Lokale Bereitstellung:
{
"mcpServers": {
"mapfolio": {
"command": "node",
"args": ["/path/to/mapfolio/mcp-server/dist/index.js"],
"env": {
"MAPFOLIO_API_URL": "https://mapfolio.app",
"MAPFOLIO_API_KEY": "mapf_your_api_key_here"
}
}
}
}
Cursor
Konfigurieren Sie über MCP-Einstellungen:
- Befehl:
node - Args:
["/path/to/mapfolio/mcp-server/dist/index.js"] - Umgebungsvariablen:
MAPFOLIO_API_URL:https://mapfolio.appMAPFOLIO_API_KEY: Ihr API-Schlüssel (optional)
Authentifizierung
Der Server unterstützt zwei Authentifizierungsmethoden:
API-Schlüssel-Authentifizierung
API-Schlüssel sind mit mapf_ vorangestellt und können:
- Über die Umgebungsvariable
MAPFOLIO_API_KEYgesetzt werden - Pro-Anfrage über den Parameter
apiKeyin Tool-Aufrufen übergeben werden
JWT-Token-Authentifizierung
Supabase JWT-Token können:
- Über die Umgebungsvariable
MAPFOLIO_JWT_TOKENgesetzt werden - Pro-Anfrage über den Parameter
jwtTokenin Tool-Aufrufen übergeben werden
Authentifizierungspriorität
- HTTP Transport: Header (
X-API-KeyoderAuthorization) haben Vorrang - Pro-Anfrage-Anmeldedaten (
apiKeyoderjwtTokenin Tool-Argumenten) - Umgebungsvariablen (
MAPFOLIO_API_KEYoderMAPFOLIO_JWT_TOKEN)
HTTP Transport Authentifizierung
Bei Verwendung des HTTP-Endpunkts (/api/mcp) wird die Authentifizierung über HTTP-Header bereitgestellt:
- API-Schlüssel:
X-API-Key: mapf_your_api_key - JWT-Token:
Authorization: Bearer your_jwt_token
Verfügbare Tools
Der Server bietet 30+ Tools in 6 Kategorien:
Unternehmens-Tools
search_companies- Suche mit Filternget_company- Unternehmen nach ID abrufenget_companies_by_canton_letter- Nach Kanton und Buchstabe abrufenget_random_companies- Zufällige Stichproben abrufenget_company_visits- Besuchsstatistiken abrufen
Projekt-Tools
create_project- Neues Projekt erstellenlist_projects- Benutzerprojekte auflistenget_project- Projektdetails abrufenupdate_project- Projekt aktualisierendelete_project- Projekt löschenadd_companies_to_project- Unternehmen hinzufügenremove_companies_from_project- Unternehmen entfernen
Benutzer-Tools
get_user_profile- Profil abrufenupdate_user_profile- Profil aktualisierenget_user_projects- Projekte auflistenget_user_api_keys- API-Schlüssel auflisten
LinkedIn-Tools
get_linkedin_profile- Profil abrufensearch_linkedin_profiles- Profile suchenget_linkedin_connections- Verbindungen abrufenget_linkedin_profile_versions- Versionsverlauf abrufenget_linkedin_companies- Unternehmensdaten abrufen
Admin-Tools (nur Admin)
list_all_users- Alle Benutzer auflistencreate_user- Benutzer erstellenget_user_details- Benutzerdetails abrufenlist_api_keys- Alle API-Schlüssel auflistencreate_api_key- API-Schlüssel erstellenrevoke_api_key- API-Schlüssel widerrufenget_admin_stats- Admin-Statistiken abrufen
Statistik-Tools
get_company_stats- Aggregierte Statistiken abrufenget_canton_counts- Kantonszählungen abrufenget_letter_counts- Buchstabenzählungen abrufenget_two_letter_counts- Zwei-Buchstaben-Zählungen abrufen
Ressourcen
Der Server bietet ressourcenbasierten Zugriff:
mapfolio://company/{id}- Unternehmensdatenmapfolio://project/{id}- Projektdatenmapfolio://user/{id}- Benutzerprofilmapfolio://linkedin-profile/{id}- LinkedIn-Profil
Ressourcen können Authentifizierung über Abfrageparameter enthalten:
mapfolio://company/{id}?apiKey=mapf_...mapfolio://company/{id}?jwtToken=...
Beispielverwendung
Unternehmen suchen
{
"tool": "search_companies",
"arguments": {
"query": "technology",
"cantons": ["ZH", "BE"],
"page": 1,
"limit": 20
}
}
Projekt erstellen
{
"tool": "create_project",
"arguments": {
"name": "Tech Companies Zurich",
"searchType": "company",
"searchQuery": "technology",
"isPublic": false
}
}
Unternehmensdetails abrufen
{
"tool": "get_company",
"arguments": {
"companyId": "company-uuid-here"
}
}
Fehlerbehandlung
Alle Tools geben Fehler in einem konsistenten Format zurück:
{
"error": "Fehlermeldung"
}
Häufige Fehlerszenarien:
- 401 Unauthorized: Ungültige oder fehlende Authentifizierung
- 403 Forbidden: Unzureichende Berechtigungen
- 404 Not Found: Ressource nicht gefunden
- 500 Internal Server Error: Server-seitiger Fehler
API-Only Architektur
Der MCP-Server verwendet HTTP-Anfragen an mapfolio.app anstelle von direktem Datenbankzugriff. Das bedeutet:
- ✅ Keine Supabase-Anmeldedaten erforderlich - Funktioniert nur mit API-URL und API-Schlüssel
- ✅ Einfaches Vercel Deployment - Als Serverless-Funktion bereitstellen
- ✅ Sicher - Alle Anfragen gehen über Mapfolios API mit Authentifizierung
- ✅ Skalierbar - Nutzt Mapfolios API-Rate-Limiting und Caching
Derzeit über API verfügbar
- ✅ Unternehmenssuche und -abruf
- ✅ Unternehmensstatistiken (Kantonszählungen, Buchstabenzählungen)
- ✅ Zufällige Unternehmen
- ✅ Unternehmensbesuche
Kommt bald (erfordert API-Endpunkte)
- ⏳ Projektverwaltung (erstellen, auflisten, aktualisieren, löschen)
- ⏳ Benutzerprofilverwaltung
- ⏳ LinkedIn-Profilzugriff
- ⏳ Admin-Operationen
Diese Funktionen geben hilfreiche Fehlermeldungen zurück, bis die API-Endpunkte erstellt sind.
Sicherheitsüberlegungen
- API-Schlüssel: Sicher speichern, niemals in Versionskontrolle committen
- JWT-Token: Token laufen ab, Refresh angemessen handhaben
- API-Rate-Limiting: Respektiert Mapfolios API-Rate-Limits
- Nur HTTPS: Immer HTTPS für API-Anfragen verwenden
- Admin-Operationen: Erfordern explizite Admin-Authentifizierung (wenn Endpunkte verfügbar sind)
Entwicklung
Typprüfung
npm run type-check
Erstellen
npm run build
Entwicklungsmodus
npm run dev
Dokumentation
Für vollständige Dokumentation siehe MCP Server README.
Support
Bei Problemen oder Fragen:
- GitHub Issues: [mapfolio repository]
- E-Mail: support@mapfolio.app
Lizenz
MIT