mcpField
P
Phalcon MCP Server

Phalcon MCP Server

Local
github.com/mark3labsFinance11Updated 54w ago

About Phalcon MCP Server

Phalcon MCP Server connects BlockSec to MCP clients, providing blockchain transaction tracing, profiling, and related analysis. It is intended for applications that need on-chain transaction details and chain identification.

Key features

  1. 01Trace transaction calls and gas usage
  2. 02Profile transaction and fund flows
  3. 03Retrieve labels and balance changes
  4. 04Inspect contract state changes
  5. 05Aggregate transaction analysis
  6. 06Look up chain IDs by name

Use cases

  1. 01Reviewing a transaction's call trace and gas usage
  2. 02Examining transaction fund flows and token details
  3. 03Identifying address labels and balance changes
  4. 04Finding a chain ID from its name

MCP support

The server exposes BlockSec-backed blockchain analysis tools to MCP clients, including transaction tracing, profiling, and chain ID lookup.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"phalcon": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mark3labs/phalcon-mcp:latest"
]
}
}
}
Run commanddocker run -i --rm ghcr.io/mark3labs/phalcon-mcp:latest

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/mark3labs/phalcon-mcp:latest

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Phalcon MCP Server

This MCP server integrates with the BlockSec platform to provide blockchain transaction analysis tools via the Model Context Protocol (MCP).

The Model Context Protocol (MCP) is a protocol for AI model integration, allowing AI models to access external tools and data sources.

Components

Tools
Transaction Analysis
  • Trace

    • Trace the different calls of a transaction on a blockchain along with gas usage metrics
    • Parameters: chainId (required), transactionHash (required)
  • Profile

    • Profile a transaction on a blockchain with details about the transaction, flow of funds and token information
    • Parameters: chainId (required), transactionHash (required)
  • AddressLabel

    • Get human readable labels for contract addresses like tokens, protocols, and other on-chain entities
    • Parameters: chainId (required), transactionHash (required)
  • BalanceChange

    • Retrieve detailed balance change information for a transaction
    • Parameters: chainId (required), transactionHash (required)
  • StateChange

    • Retrieve detailed information about state changes like storage variables in contracts for a transaction
    • Parameters: chainId (required), transactionHash (required)
  • TransactionOverview

    • Comprehensive overview of a transaction by aggregating data from all available analysis tools
    • Parameters: chainId (required), transactionHash (required)
Chain Information
  • GetChainIdByName
    • Get the chain ID for a blockchain by name, chain, or chainSlug
    • Parameters: name (required)

Getting Started

Installation
Using Go Install
go install github.com/mark3labs/phalcon-mcp@latest
Usage

Start the MCP server:

phalcon-mcp serve

Check the version:

phalcon-mcp version
Using as a Package

You can import the server in your Go projects:

Stdio Mode
import "github.com/mark3labs/phalcon-mcp/server"

func main() {
    // Create a new server with version
    s := server.NewServer("1.0.0")
    
    // Start the server in stdio mode
    if err := s.ServeStdio(); err != nil {
        log.Fatalf("Server error: %v", err)
    }
}
In-Process Mode

For in-process usage with the mcp-go client library:

import (
    "context"
    "log"
    
    "github.com/mark3labs/mcp-go/client"
    "github.com/mark3labs/mcp-go/client/transport"
    "github.com/mark3labs/phalcon-mcp/server"
)

func main() {
    // Create the Phalcon MCP server
    phalconServer := server.NewServer("1.0.0")

    // Create an in-process transport using the server's MCPServer
    inProcessTransport := transport.NewInProcessTransport(phalconServer.GetMCPServer())

    // Create an MCP client using the in-process transport
    mcpClient := client.NewMCPClient(inProcessTransport)

    // Start the transport
    ctx := context.Background()
    if err := mcpClient.Connect(ctx); err != nil {
        log.Fatalf("Failed to connect: %v", err)
    }
    defer mcpClient.Close()

    // Initialize the client
    if err := mcpClient.Initialize(ctx); err != nil {
        log.Fatalf("Failed to initialize: %v", err)
    }

    // List available tools
    tools, err := mcpClient.ListTools(ctx)
    if err != nil {
        log.Fatalf("Failed to list tools: %v", err)
    }

    // Use the tools...
    result, err := mcpClient.CallTool(ctx, "get-chain-id-by-name", map[string]any{
        "name": "ethereum",
    })
    if err != nil {
        log.Fatalf("Failed to call tool: %v", err)
    }
}
Usage with Model Context Protocol

To integrate this server with apps that support MCP:

{
  "mcpServers": {
    "phalcon": {
      "command": "phalcon-mcp",
      "args": ["serve"]
    }
  }
}
Docker
Running with Docker

You can run the Phalcon MCP server using Docker:

docker run -i --rm ghcr.io/mark3labs/phalcon-mcp:latest serve
Docker Configuration with MCP

To integrate the Docker image with apps that support MCP:

{
  "mcpServers": {
    "phalcon": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mark3labs/phalcon-mcp:latest",
        "serve"
      ]
    }
  }
}

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.