Skip to main content
Glama
bmorphism

Penumbra MCP Server

by bmorphism

페넘브라 MCP 서버

페넘브라 블록체인과 상호작용하기 위한 도구를 제공하는 MCP 서버입니다. 이 서버는 거래 쿼리, 검증자 세트 정보, DEX 상태, 거버넌스 제안 등 페넘브라의 핵심 기능들과 개인 정보를 보호하면서 상호작용할 수 있도록 지원합니다.

특징

현재 도구

  • get_validator_set : 현재 검증자 세트 정보를 가져옵니다.

  • get_chain_status : 블록 높이와 체인 ID를 포함한 현재 체인 상태를 가져옵니다.

  • get_transaction : 특정 거래의 세부 정보를 가져옵니다.

  • get_dex_state : 최신 일괄 경매 결과를 포함한 현재 DEX 상태를 가져옵니다.

  • get_governance_proposals : 활성 거버넌스 제안을 받습니다.

계획된 기능

  • 거래 제출

  • 프라이빗 스테이킹 운영

  • DEX 거래(봉인 입찰 일괄 경매)

  • 민간 거버넌스 투표

  • 유동성 포지션 관리

Related MCP server: Beeper MCP

설치

npm을 통해 패키지를 설치할 수 있습니다:

지엑스피1

또는 실을 사용하여:

yarn add @timeheater/penumbra-mcp

설정

출처로부터의 지역 개발

  1. 종속성 설치:

npm install
  1. 서버를 빌드하세요:

npm run build
  1. 개발 모드에서 실행:

npm run watch

Claude 데스크톱 통합

Claude 데스크톱과 통합하려면 다음 구성을 Claude 데스크톱 설정 파일( ~/Library/Application Support/Claude/claude_desktop_config.json )에 추가하세요.

{
  "mcpServers": {
    "penumbra-mcp": {
      "command": "node",
      "args": ["/Users/barton/infinity-topos/penumbra-mcp/build/index.js"],
      "env": {
        "PENUMBRA_NODE_URL": "https://rpc.penumbra.zone",
        "PENUMBRA_NETWORK": "mainnet",
        "PENUMBRA_CHAIN_ID": "penumbra-1",
        "PENUMBRA_REQUEST_TIMEOUT": "30000",
        "PENUMBRA_REQUEST_RETRIES": "5",
        "PENUMBRA_BLOCK_TIME": "6000",
        "PENUMBRA_EPOCH_DURATION": "100",
        "PENUMBRA_DEX_BATCH_INTERVAL": "60000",
        "PENUMBRA_DEX_MIN_LIQUIDITY": "1000",
        "PENUMBRA_DEX_MAX_PRICE_IMPACT": "0.05",
        "PENUMBRA_GOVERNANCE_VOTING_PERIOD": "1209600000",
        "PENUMBRA_GOVERNANCE_MIN_DEPOSIT": "100000"
      }
    }
  }
}

/path/to/penumbra-mcp 서버를 설치한 실제 경로로 바꾸세요.

MCP 서버 사용

구성이 완료되면 다음 도구를 사용하여 Claude를 통해 Penumbra와 상호 작용할 수 있습니다.

  1. 쿼리 검증기 세트:

Tell Claude: "Show me the current Penumbra validator set"
  1. 체인 상태 확인:

Tell Claude: "What's the current status of the Penumbra chain?"
  1. 거래 세부 정보를 받으세요:

Tell Claude: "Look up Penumbra transaction [HASH]"
  1. DEX 상태 보기:

Tell Claude: "Show me the current Penumbra DEX state"
  1. 거버넌스 제안 목록:

Tell Claude: "List active Penumbra governance proposals"

개발

  • npm run watch : 개발을 위한 감시 모드

  • npm run inspector : 테스트를 위해 MCP 검사기를 실행합니다.

  • npm test : 테스트 모음 실행

환경 변수

노드 구성

  • PENUMBRA_NODE_URL : Penumbra 노드의 URL(기본값: https://rpc.penumbra.zone )

  • PENUMBRA_REQUEST_TIMEOUT : HTTP 요청 시간 초과(밀리초)(기본값: 30000)

  • PENUMBRA_REQUEST_RETRIES : 요청 재시도 횟수(기본값: 5)

체인 구성

  • PENUMBRA_NETWORK : 연결할 네트워크(기본값: 메인넷)

  • PENUMBRA_CHAIN_ID : 체인 ID(기본값: penumbra-1)

  • PENUMBRA_BLOCK_TIME : 블록 시간(밀리초)(기본값: 6000)

  • PENUMBRA_EPOCH_DURATION : 에포크당 블록 수(기본값: 100)

DEX 구성

  • PENUMBRA_DEX_BATCH_INTERVAL : 일괄 경매 간격(밀리초)(기본값: 60000)

  • PENUMBRA_DEX_MIN_LIQUIDITY : 최소 유동성 금액(기본값: 1000)

  • PENUMBRA_DEX_MAX_PRICE_IMPACT : 소수점 형태로 표현된 최대 가격 영향(기본값: 0.05)

거버넌스 구성

  • PENUMBRA_GOVERNANCE_VOTING_PERIOD : 투표 기간(밀리초) (기본값: 1209600000 - 14일)

  • PENUMBRA_GOVERNANCE_MIN_DEPOSIT : 제안 최소 입금 금액(기본값: 100000)

건축학

이 서버는 TypeScript를 사용하여 구축되었으며, 표준화된 도구 인터페이스를 위한 모델 컨텍스트 프로토콜(MCP)을 구현합니다. 현재 핵심 기능에 대한 모의 구현을 제공하고 있으며, Penumbra의 클라이언트 라이브러리 및 노드 API 엔드포인트와 직접 통합될 계획입니다.

개인정보 보호 고려 사항

모든 상호작용은 Penumbra의 개인 정보 보호 디자인을 존중합니다.

  • 보호된 거래

  • 프라이빗 스테이킹 운영

  • 봉인 입찰 일괄 경매

  • 익명의 거버넌스 투표

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

특허

아이에스씨

Available Tools

5 tools
get_chain_statusB

Get current chain status including block height and chain ID

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information ('Get'), implying a read-only operation, but doesn't clarify aspects like whether it requires authentication, has rate limits, returns real-time or cached data, or what happens on errors. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose ('Get current chain status') and adds specifics ('including block height and chain ID'). There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is adequate for a basic read operation. It specifies what information is retrieved, which helps the agent understand the output. However, without annotations or an output schema, it lacks details on behavioral traits (e.g., error handling) and return format, leaving some gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, but it correctly indicates no inputs are required. Baseline is 4 for zero parameters, as the description aligns with the schema's lack of inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('current chain status'), specifying what information is included ('block height and chain ID'). It distinguishes from siblings like get_dex_state or get_transaction by focusing on chain-level metadata rather than DEX data, governance, or specific transactions. However, it doesn't explicitly contrast with all siblings (e.g., get_validator_set).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to use this tool versus alternatives. The description implies usage for retrieving chain metadata, but it doesn't state when to prefer this over other tools (e.g., for checking chain health vs. querying transactions) or mention any prerequisites. This leaves the agent to infer context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dex_stateB

Get current DEX state including latest batch auction results

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't specify whether it requires authentication, has rate limits, or what format the results are in. This leaves significant gaps for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a zero-parameter tool and earns its place by clearly stating what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what data is retrieved but doesn't cover behavioral aspects like authentication or result format, making it minimally viable for this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter documentation in the description. The baseline for this scenario is 4, as the description appropriately avoids redundant parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current DEX state including latest batch auction results'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like get_chain_status or get_governance_proposals, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_chain_status or get_transaction. It lacks explicit context about use cases, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_governance_proposalsC

Get active governance proposals

NameRequiredDescriptionDefault
statusNoFilter proposals by statusactive

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes. The description is minimal and lacks essential operational details for a tool that likely interacts with governance systems.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—just three words—and front-loaded with the core action. There is zero wasted language, making it efficient for quick comprehension. However, this conciseness comes at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficient for a governance tool. It doesn't explain what 'governance proposals' entail, what data is returned, or any behavioral traits. For a tool that likely returns structured governance data, more context is needed to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'status' fully documented in the schema (including enum values and default). The description mentions 'active' proposals, which aligns with the default value but doesn't add any semantic context beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('active governance proposals'), making the purpose immediately understandable. It specifies the scope ('active') which helps distinguish it from other governance-related tools that might exist, though no direct siblings exist in the provided list. However, it doesn't explicitly differentiate from hypothetical alternatives like 'get_all_governance_proposals' or 'get_proposal_details'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, dependencies, or scenarios where this tool is preferred over others. With no sibling tools directly overlapping in function, this is less critical, but still a gap in usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transactionC

Get details of a specific transaction

NameRequiredDescriptionDefault
hashYesTransaction hash

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool retrieves details but doesn't disclose behavioral traits like error handling, rate limits, authentication needs, or what 'details' include (e.g., status, timestamps). This leaves significant gaps for agent understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'details' entail or potential behavioral aspects, making it inadequate for a tool that likely returns complex transaction data, leaving the agent with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description doesn't add meaning beyond the input schema, which has 100% coverage and clearly documents the 'hash' parameter. With high schema coverage, the baseline is 3, as the schema adequately handles parameter semantics without extra description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('details of a specific transaction'), making the purpose understandable. However, it doesn't differentiate this tool from potential sibling tools that might also retrieve transaction data, as none are listed among the siblings provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, such as whether it's for confirmed transactions only or if other tools handle batch queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_validator_setB

Get the current validator set information

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' information (implying a read operation) but doesn't specify whether this requires authentication, has rate limits, returns real-time or cached data, or what format the information comes in. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple read operation and is front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what 'validator set information' includes, whether it's paginated, how current 'current' is, or what the return format looks like. For a tool that presumably returns structured data about validators, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't mention parameters since none exist, which is correct. Baseline would be 4 for 0-parameter tools that don't mislead about parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('current validator set information'), making the purpose immediately understandable. It doesn't distinguish from sibling tools like get_chain_status or get_governance_proposals, but the verb+resource combination is specific enough for basic understanding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_chain_status or get_dex_state. There's no mention of context, prerequisites, or exclusions, leaving the agent to infer usage based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedget_chain_status
    • First observedget_dex_state
    • First observedget_governance_proposals
    • First observedget_transaction
    • First observedget_validator_set

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting different resources: chain status, DEX state, governance proposals, transactions, and validator set. There is no overlap or ambiguity between them, making it easy for an agent to select the correct tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get_' prefix and snake_case, such as get_chain_status and get_dex_state. This predictability enhances readability and usability for agents.

Tool Count5/5

With 5 tools, the server is well-scoped for its apparent blockchain/DeFi domain. Each tool earns its place by covering key aspects like status, DEX, governance, transactions, and validators without being too sparse or bloated.

Completeness3/5

The toolset provides read-only access to various blockchain data, but there are notable gaps for a full DeFi lifecycle, such as creating transactions, voting on proposals, or interacting with the DEX. Agents can retrieve information but may struggle with write operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers