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.
- 
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) 
 
- GetChainIdByName
- Get the chain ID for a blockchain by name, chain, or chainSlug
 - Parameters: 
name(required) 
 
go install github.com/mark3labs/phalcon-mcp@latestStart the MCP server:
phalcon-mcp serveCheck the version:
phalcon-mcp versionYou can import the server in your Go projects:
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)
    }
}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)
    }
}To integrate this server with apps that support MCP:
{
  "mcpServers": {
    "phalcon": {
      "command": "phalcon-mcp",
      "args": ["serve"]
    }
  }
}You can run the Phalcon MCP server using Docker:
docker run -i --rm ghcr.io/mark3labs/phalcon-mcp:latest serveTo integrate the Docker image with apps that support MCP:
{
  "mcpServers": {
    "phalcon": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mark3labs/phalcon-mcp:latest",
        "serve"
      ]
    }
  }
}MIT