VOOZH about

URL: https://glama.ai/mcp/servers/PortalFnd/PortalMCP?locale=de-DE

⇱ PortalMCP by PortalFnd | Glama


🌐 PortalMCP

Universelles KI-Gateway für Ethereum

Ein Server. Jede KI. Die gesamte Chain.

Verbinden Sie jeden Model-Context-Protocol-Client — Claude, ChatGPT, Gemini, Cursor, Windsurf, Cline, benutzerdefinierte Agenten — mit Ethereum mittels natürlicher Sprache. Überprüfen Sie Guthaben, tauschen Sie Token, minten Sie NFTs, generieren und implementieren Sie Smart Contracts.

👁 MCP SDK
👁 Ethers
👁 TypeScript
👁 License
👁 Release

Schnellstart · Einrichtung · Tools · Roadmap · Changelog


✨ Warum PortalMCP

Die meisten KI-Blockchain-Integrationen binden Sie an ein LLM oder einen Client. PortalMCP ist ein spezifikationskonformer MCP-Server — derselbe Server, der lokal oder auf Ihrem VPS läuft, versorgt jeden MCP-fähigen Client.

🔐 Non-custodial — private Schlüssel verlassen niemals Ihren Rechner 🛰️ Live-Chain-Kontext — Ressourcen streamen ETH-Guthaben, Transaktionsbelege und Token-Metadaten direkt in Ihren Chat 🛡️ Sicherheit zuerst — jedes Tool deklariert Lese-/destruktive/idempotente Hinweise, damit Clients vor dem Senden bestätigen können 🧩 Universell — funktioniert über stdio und HTTP, kompatibel mit jedem MCP-Client


Related MCP server: MCP Crypto Wallet EVM

🧭 Kompatible Clients

Client

Transport

Hinweise

🟣 Claude Desktop (macOS/Windows)

stdio

Drop-in-Konfiguration unten

🌐 Claude.ai Web + Mobile

HTTP

Als Custom Connector hinzufügen (Pro/Team/Enterprise)

💻 Claude Code / CLI

entweder

🧠 Cursor · Windsurf · Cline · Continue · Zed AI

stdio

Natives MCP

💬 ChatGPT (Team/Enterprise)

HTTP

MCP-Connector

🛠️ ChatGPT Custom GPTs

REST

Nutzt gebündelte openapi.json

✴️ Google Gemini / Vertex Agents

HTTP

MCP-Connector

🐍 LangChain · LlamaIndex · OpenAI Agents SDK

entweder

via deren MCP-Adapter

🤖 Jeder HTTP-Agent

HTTP

Einfaches JSON-RPC + SSE auf /mcp


🎯 Was es kann

⚡ Allgemein

Tool

Aktion

eth_get_balance

ETH-Guthaben einer Adresse oder des Standard-Wallets

eth_call_contract

Schreibgeschützter Aufruf gegen jeden Contract + ABI

eth_send_transaction

Vorbereitung einer generischen, unsignierten Transaktion

📜 Smart Contracts

Tool

Aktion

eth_generate_contract

Von Claude erstelltes Solidity mittels natürlicher Sprache

eth_compile_contract

solc-Kompilierung → Bytecode + ABI

eth_deploy_contract

Vorbereitung der Deployment-Transaktion für externe Wallet-Signierung

eth_deploy_contract_with_signer

Direkte Bereitstellung mittels DEPLOYER_PRIVATE_KEY

🪙 ERC-20 Token

Tool

Aktion

eth_create_token

Generierung von ERC-20 Solidity

eth_get_token_balance

ERC-20-Guthaben eines Inhabers

eth_transfer_token

Signierte Übertragung oder Vorbereitung einer unsignierten Transaktion

🖼️ ERC-721 NFTs

Tool

Aktion

eth_create_nft_collection

Generierung von ERC-721 Solidity

eth_mint_nft

Vorbereitung von mint / safeMint / mintWithURI

eth_get_nft_owner

ownerOf()-Abfrage

🏦 DeFi

Tool

Aktion

eth_create_staking_contract

Generierung von Staking-Solidity

eth_stake_tokens

Vorbereitung von Approve- + Stake-Transaktionen

eth_swap_tokens

Universeller Uniswap V3 Swap (jedes ERC-20-Paar)

eth_swap_eth_to_usdt

Komfort-Alias für das obige

URI

Rückgabe

eth://wallet

Konfigurierte Signer-Adresse, Netzwerk, ETH-Guthaben

eth://balance/{address}

Live-ETH-Guthaben für jede Adresse

eth://tx/{hash}

Transaktion + Beleg (Status, Gas, Block, Logs, Explorer-URL)

eth://token/{address}

ERC-20-Metadaten (Name, Symbol, Dezimalstellen, Gesamtangebot)

  • /swap_tokens — geführter Token-Swap-Ablauf

  • /deploy_erc20 — generieren → kompilieren → bereitstellen (End-to-End)


🚀 Schnellstart

git clone https://github.com/PortalFnd/PortalMCP.git
cd PortalMCP/portalmcp
npm install
cp .env.example .env
# fill in .env — ANTHROPIC_API_KEY, DEPLOYER_PRIVATE_KEY,
# and ETHEREUM_RPC_URL (or a real ALCHEMY_API_KEY)
npm run build
npm run smoke # ✓ 17 tools / 1 resource / 3 templates / 2 prompts
npm start # stdio (Claude Desktop, Cursor, …)
# or
npm run start:http # Streamable HTTP on http://0.0.0.0:3333/mcp

🔌 Client-Einrichtung

Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
 "mcpServers": {
 "portalmcp": {
 "command": "node",
 "args": ["/absolute/path/to/PortalMCP/portalmcp/dist/index.js"],
 "env": {
 "ETHEREUM_NETWORK": "mainnet",
 "ETHEREUM_RPC_URL": "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY",
 "DEPLOYER_PRIVATE_KEY": "0x...",
 "ANTHROPIC_API_KEY": "sk-ant-..."
 }
 }
 }
}

Starten Sie Claude Desktop neu. 17 Tools, eth://-Ressourcen und zwei Slash-Befehle erscheinen automatisch.

  1. Hosten Sie den HTTP-Server mit einer öffentlichen HTTPS-URL (Caddy / Cloudflare Tunnel / Nginx).

  2. Setzen Sie MCP_HTTP_TOKEN=<lange-zufällige-zeichenfolge>, damit nur Sie darauf zugreifen können.

  3. In Claude.ai → Einstellungen → Connectors → Custom Connector hinzufügen:

    • URL: https://your-host.example.com/mcp

    • Auth: Authorization: Bearer <MCP_HTTP_TOKEN>

  4. Funktioniert sowohl im Web als auch in der mobilen App.

Alle unterstützen MCP nativ. Fügen Sie einen Eintrag in deren MCP-Konfiguration hinzu, der auf Folgendes verweist:

node /absolute/path/to/PortalMCP/portalmcp/dist/index.js

(Derselbe stdio-Befehl wie bei Claude Desktop.)

Bevorzugt — MCP-Connector (ChatGPT Team/Enterprise, Gemini/Vertex Agents): Verweisen Sie auf https://your-host/mcp, optional mit einem Bearer-Token.

Legacy REST (ChatGPT Custom GPT Actions oder jeder HTTP-Agent):

npm run start:api
# OpenAPI spec: http://localhost:3001/openapi.json

💬 Beispiel-Konversationen

Einen Token von Grund auf bereitstellen

"Stelle einen ERC-20 namens PortalToken (PRTL) mit einem Anfangsangebot von 1.000.000 bereit."

eth_generate_contract → zeigt Code → eth_compile_contracteth_deploy_contract_with_signer → gibt die Contract-Adresse + Etherscan-Link zurück.

Universeller Swap

"Tausche 0,01 ETH gegen USDC."

eth_swap_tokens { tokenIn:"ETH", tokenOut:"USDC", amount:"0.01" } — genehmigt (falls erforderlich) und führt den Tausch über Uniswap V3 aus.

Live On-Chain-Kontext

"Wie hoch ist das Guthaben von vitalik.eth?"

→ der Client fügt die eth://balance/0xd8dA…-Ressource direkt in die Konversation ein.


⚙️ Konfiguration

Alles über Umgebungsvariablen (.env-Datei oder Host-Umgebung). Vollständige Liste in .env.example.

Variable

Erforderlich

Zweck

ETHEREUM_NETWORK

mainnet, sepolia, arbitrum, optimism, base, polygon, … (Standard mainnet)

ETHEREUM_RPC_URL

Vollständige JSON-RPC-URL — überschreibt Infura/Alchemy-Schlüssel-Setup

ALCHEMY_API_KEY

alt

Nur Schlüssel — PortalMCP erstellt die moderne g.alchemy.com-URL

INFURA_API_KEY

alt

Infura-Projekt-ID

DEPLOYER_PRIVATE_KEY

writes

0x-präfixierter Hex-Wert — ermöglicht Signer-gestützte Tools

ANTHROPIC_API_KEY

generate

Für eth_generate_contract

ANTHROPIC_MODEL

Überschreibt Standard claude-sonnet-4-5-20250929

MCP_HTTP_PORT

Standard 3333

MCP_HTTP_HOST

Standard 0.0.0.0

MCP_HTTP_TOKEN

🛡️

Bearer-Token für den HTTP-Transport

MCP_HTTP_CORS_ORIGIN

Standard *

💡 Platzhalter-Erkennung — jeder Umgebungswert, der mit your_, changeme, xxx, placeholder, <…> beginnt, wird als nicht gesetzt behandelt. Stoppt fehlerhafte Konfigurationen sofort.


🌍 Unterstützte Netzwerke


🛡️ Sicherheit

  • 🚫 Niemals .env committen — bereits in .gitignore enthalten.

  • 🔑 DEPLOYER_PRIVATE_KEY ist gefährlich. Verwenden Sie ein dediziertes Agenten-Wallet mit nur Mitteln, deren Verlust Sie verschmerzen können.

  • 🛰️ Setzen Sie immer MCP_HTTP_TOKEN, wenn Sie HTTP über localhost hinaus freigeben, und verwenden Sie TLS (Caddy/Cloudflare) davor.

  • 🧪 Zuerst Testnet — verwenden Sie sepolia für die Entwicklung, Mainnet erst nach Überprüfung des Ablaufs.

  • 🏷️ Tool-Annotationen ermöglichen es Clients, vor destruktiven Transaktionen nachzufragen — genehmigen Sie diese nicht automatisch.

  • 👀 Überprüfen Sie generiertes Solidityeth_generate_contract ist ein Ausgangspunkt, kein Audit.


🧑💻 Entwicklung

npm install
npm run dev # stdio, ts-node hot-reload
npm run dev:http # HTTP, ts-node
npm run build # tsc → dist/
npm run smoke # assert MCP surface is registered
npm test # Jest

Skript

Zweck

npm start

stdio MCP-Server (prod)

npm run start:http

Streamable HTTP MCP-Server (prod)

npm run start:api

Legacy REST für ChatGPT Actions / HTTP-Clients

npm run smoke

Registrierungs-Smoke-Test — ideal für CI

Repo-Struktur

portalmcp/
├── src/
│ ├── index.ts # stdio entrypoint
│ ├── mcp-http.ts # Streamable HTTP entrypoint
│ ├── server-factory.ts # createPortalServer() — shared wiring
│ ├── smoke-test.ts # CI registration check
│ ├── tools/ # general · contracts · defi · tokens · nfts
│ ├── blockchain/ # EthereumService · CompilerService
│ ├── claude/ # ContractGenerator (Anthropic SDK)
│ ├── contracts/ # Solidity templates
│ └── adapters/ # Legacy REST / LangChain / OpenAI adapters
├── dist/ # tsc output
├── .env.example
└── package.json

🏗️ Architektur

 stdio Streamable HTTP (SSE)
┌─────────────────────┐ ┌─────────────────────────────┐
│ Claude Desktop │ │ Claude.ai web + mobile │
│ Cursor · Windsurf │ │ ChatGPT · Gemini │
│ Cline · Continue │ │ Custom agents │
└─────────┬───────────┘ └──────────────┬──────────────┘
 │ │
 │ ┌──────────────────────┐ │
 └───────▶│ PortalMCP server │◀────────────┘
 │ (server-factory.ts) │
 └──────────┬───────────┘
 │
 ┌──────────────────────┼──────────────────────┐
 ▼ ▼ ▼
 EthereumService Uniswap V3 Anthropic
 (ethers v6 + (eth_swap_tokens) (eth_generate_contract)
 Alchemy/Infura/
 custom RPC)

🗺️ Roadmap-Highlights

Vollständiger Plan in ROADMAP.md.


🤝 Mitwirken

PRs sind willkommen! Prioritätsbereiche: mehr outputSchema-Abdeckung, zusätzliche Tools, Docker-Packaging, Python-Client, Testabdeckung. Eröffnen Sie bei nicht trivialen Änderungen zuerst ein Issue.


⭐ Dieses Repo mit einem Stern markieren · 🐛 Ein Issue melden · 📜 MIT-Lizenz

Erstellt mit 💜 von der Portal Foundation

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/PortalFnd/PortalMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server