VOOZH about

URL: https://glama.ai/mcp/servers/PortalFnd/PortalMCP?locale=es-ES

⇱ PortalMCP by PortalFnd | Glama


🌐 PortalMCP

Puerta de enlace de IA universal para Ethereum

Un servidor. Toda IA. Toda la cadena.

Conecta cualquier cliente del Protocolo de Contexto de Modelo (MCP) — Claude, ChatGPT, Gemini, Cursor, Windsurf, Cline, agentes personalizados — a Ethereum con lenguaje natural. Consulta saldos, intercambia tokens, acuña NFT, genera y despliega contratos inteligentes.

👁 MCP SDK
👁 Ethers
👁 TypeScript
👁 License
👁 Release

Inicio rápido · Configuración · Herramientas · Hoja de ruta · Registro de cambios


✨ Por qué PortalMCP

La mayoría de las integraciones de IA y blockchain te limitan a un LLM o un cliente. PortalMCP es un servidor MCP que cumple con las especificaciones: el mismo servidor, ejecutándose localmente o en tu VPS, potencia a cada cliente compatible con MCP.

🔐 Sin custodia — las claves privadas nunca abandonan tu máquina 🛰️ Contexto de cadena en vivo — los recursos transmiten saldos de ETH, recibos de transacciones y metadatos de tokens directamente a tu chat 🛡️ Seguridad primero — cada herramienta declara sugerencias de lectura/destructivas/idempotentes para que los clientes puedan confirmar antes de transmitir 🧩 Universal — funciona tanto sobre stdio como HTTP, interactúa con todos los clientes MCP existentes


Related MCP server: MCP Crypto Wallet EVM

🧭 Clientes compatibles

Cliente

Transporte

Notas

🟣 Claude Desktop (macOS/Windows)

stdio

Configuración rápida abajo

🌐 Claude.ai web + móvil

HTTP

Añadir como Conector personalizado (Pro/Team/Enterprise)

💻 Claude Code / CLI

cualquiera

🧠 Cursor · Windsurf · Cline · Continue · Zed AI

stdio

MCP nativo

💬 ChatGPT (Team/Enterprise)

HTTP

Conector MCP

🛠️ ChatGPT Custom GPTs

REST

Usa openapi.json incluido

✴️ Google Gemini / Vertex Agents

HTTP

Conector MCP

🐍 LangChain · LlamaIndex · OpenAI Agents SDK

cualquiera

vía sus adaptadores MCP

🤖 Cualquier agente HTTP

HTTP

JSON-RPC plano + SSE en /mcp


🎯 Qué puede hacer

⚡ General

Herramienta

Acción

eth_get_balance

Saldo de ETH de cualquier dirección o la billetera predeterminada

eth_call_contract

Llamada de solo lectura contra cualquier contrato + ABI

eth_send_transaction

Preparar una transacción genérica sin firmar

📜 Contratos inteligentes

Herramienta

Acción

eth_generate_contract

Solidity escrito por Claude desde lenguaje natural

eth_compile_contract

Compilación solc → bytecode + ABI

eth_deploy_contract

Preparar tx de despliegue para firma de billetera externa

eth_deploy_contract_with_signer

Desplegar directamente usando DEPLOYER_PRIVATE_KEY

🪙 Tokens ERC-20

Herramienta

Acción

eth_create_token

Generar Solidity ERC-20

eth_get_token_balance

Saldo ERC-20 de cualquier poseedor

eth_transfer_token

Transferencia firmada o preparación de tx sin firmar

🖼️ NFT ERC-721

Herramienta

Acción

eth_create_nft_collection

Generar Solidity ERC-721

eth_mint_nft

Preparar mint / safeMint / mintWithURI

eth_get_nft_owner

Búsqueda ownerOf()

🏦 DeFi

Herramienta

Acción

eth_create_staking_contract

Generar Solidity de staking

eth_stake_tokens

Preparar txs de aprobación + staking

eth_swap_tokens

Intercambio universal Uniswap V3 (cualquier par ERC-20)

eth_swap_eth_to_usdt

Alias de conveniencia del anterior

URI

Devuelve

eth://wallet

Dirección del firmante configurado, red, saldo de ETH

eth://balance/{address}

Saldo de ETH en vivo para cualquier dirección

eth://tx/{hash}

Transacción + recibo (estado, gas, bloque, registros, URL del explorador)

eth://token/{address}

Metadatos ERC-20 (nombre, símbolo, decimales, suministro total)

  • /swap_tokens — flujo guiado de intercambio de tokens

  • /deploy_erc20 — generar → compilar → desplegar de extremo a extremo


🚀 Inicio rápido

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

🔌 Configuración del cliente

Edita ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %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-..."
 }
 }
 }
}

Reinicia Claude Desktop. 17 herramientas, recursos eth:// y dos comandos de barra aparecerán automáticamente.

  1. Aloja el servidor HTTP con una URL HTTPS pública (Caddy / Cloudflare Tunnel / Nginx).

  2. Configura MCP_HTTP_TOKEN=<cadena-larga-aleatoria> para que solo tú puedas llamarlo.

  3. En Claude.ai → Settings → Connectors → Add Custom Connector:

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

    • Auth: Authorization: Bearer <MCP_HTTP_TOKEN>

  4. Funciona tanto en la web como en la aplicación móvil.

Todos hablan MCP de forma nativa. Añade una entrada a su configuración MCP apuntando a:

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

(El mismo comando stdio que Claude Desktop.)

Preferido — Conector MCP (ChatGPT Team/Enterprise, Gemini/Vertex Agents): Apunta a https://your-host/mcp, opcionalmente con un token Bearer.

REST heredado (Acciones de GPT personalizadas de ChatGPT o cualquier agente HTTP):

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

💬 Conversaciones de ejemplo

Desplegar un token desde cero

"Despliega un ERC-20 llamado PortalToken (PRTL) con un suministro inicial de 1,000,000."

eth_generate_contract → muestra código → eth_compile_contracteth_deploy_contract_with_signer → devuelve la dirección del contrato + enlace a Etherscan.

Intercambio universal

"Intercambia 0.01 ETH por USDC."

eth_swap_tokens { tokenIn:"ETH", tokenOut:"USDC", amount:"0.01" } — aprueba (si es necesario) y ejecuta vía Uniswap V3.

Contexto en cadena en vivo

"¿Cuál es el saldo de vitalik.eth?"

→ el cliente adjunta el recurso eth://balance/0xd8dA… directamente a la conversación.


⚙️ Configuración

Todo mediante variables de entorno (archivo .env o entorno del host). Lista completa en .env.example.

Var

Requerido

Propósito

ETHEREUM_NETWORK

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

ETHEREUM_RPC_URL

URL JSON-RPC completa — sobrescribe la configuración de clave Infura/Alchemy

ALCHEMY_API_KEY

alt

Solo clave — PortalMCP construye la URL moderna g.alchemy.com

INFURA_API_KEY

alt

ID de proyecto Infura

DEPLOYER_PRIVATE_KEY

escrituras

Hexadecimal prefijado con 0x — habilita herramientas respaldadas por firmante

ANTHROPIC_API_KEY

generar

Para eth_generate_contract

ANTHROPIC_MODEL

Sobrescribir el predeterminado claude-sonnet-4-5-20250929

MCP_HTTP_PORT

Predeterminado 3333

MCP_HTTP_HOST

Predeterminado 0.0.0.0

MCP_HTTP_TOKEN

🛡️

Token Bearer para el transporte HTTP

MCP_HTTP_CORS_ORIGIN

Predeterminado *

💡 Detección de marcadores de posición — cualquier valor de entorno que comience con your_, changeme, xxx, placeholder, <…> se trata como no configurado. Detiene configuraciones erróneas silenciosas.


🌍 Redes compatibles


🛡️ Seguridad

  • 🚫 Nunca subas .env — ya está en .gitignore.

  • 🔑 DEPLOYER_PRIVATE_KEY es un arma cargada. Usa una billetera de agente dedicada solo con fondos que puedas permitirte perder.

  • 🛰️ Configura siempre MCP_HTTP_TOKEN al exponer HTTP más allá de localhost, y coloca TLS (Caddy/Cloudflare) delante.

  • 🧪 Primero testnet — usa sepolia para desarrollo, mainnet solo después de haber verificado el flujo.

  • 🏷️ Las anotaciones de herramientas permiten a los clientes preguntar antes de txs destructivas — no las apruebes automáticamente.

  • 👀 Revisa el Solidity generadoeth_generate_contract es un punto de partida, no una auditoría.


🧑💻 Desarrollo

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

Script

Propósito

npm start

Servidor MCP stdio (prod)

npm run start:http

Servidor MCP HTTP transmitible (prod)

npm run start:api

REST heredado para acciones de ChatGPT / clientes HTTP

npm run smoke

Prueba de humo de registro — ideal para CI

Diseño del repositorio

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

🏗️ Arquitectura

 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)

🗺️ Aspectos destacados de la hoja de ruta

Plan completo en ROADMAP.md.


🤝 Contribuyendo

¡Las PR son bienvenidas! Áreas prioritarias: más cobertura de outputSchema, herramientas adicionales, empaquetado Docker, cliente Python, cobertura de pruebas. Abre un issue primero para cambios no triviales.


⭐ Marca este repo con una estrella · 🐛 Informar de un problema · 📜 Licencia MIT

Construido con 💜 por la 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