Skip to content

Conversation

akolotov
Copy link
Collaborator

@akolotov akolotov commented Sep 2, 2025

Summary by CodeRabbit

  • New Features

    • Direct API: Added sender query filter for direct_api_call; OpenAPI version bumped to 0.10.0.
  • Documentation

    • Introduced “Extra files” section with two public docs: detailed MCP tool descriptions and a curated direct API endpoint list.
    • Maintenance notes standardized to bold.
    • Instructions updated to use a prerequisites block and reference the new endpoint list; version tag refreshed.
  • Tests

    • Evals README updated to include the direct_call_endpoint_list block and revised include/exclude rules.

@akolotov akolotov self-assigned this Sep 2, 2025
Copy link

coderabbitai bot commented Sep 2, 2025

Walkthrough

Introduces a new direct_call_endpoint_list.md, restructures GPT docs to reference it, updates gpt/README.md sections, bumps OpenAPI version and constrains direct_api_call query_params to include sender, updates examples, and adjusts tests/evals README to embed the new endpoint list and updated inclusion rules.

Changes

Cohort / File(s) Summary of Changes
GPT docs restructure
gpt/README.md, gpt/instructions.md
README: replaces tool descriptions heading with “Extra files,” adds references to action_tool_descriptions.md and direct_call_endpoint_list.md, bolds maintenance notes, documents OpenAPI compliance changes. Instructions: updates version tag; adds prerequisites block pointing to action_tool_descriptions.md and direct_call_endpoint_list.md; removes embedded endpoint list content.
New endpoint list doc
gpt/direct_call_endpoint_list.md
Adds ADVANCED API USAGE guide enumerating common and chain-specific Blockscout API endpoints for use with direct_api_call; documentation only.
OpenAPI spec update
gpt/openapi.yaml
Bumps info.version 0.9.0 → 0.10.0. For /direct_api_call, query_params adds sender: string and example updated to include sender and remove page.
Tests/Evals docs update
tests/evals/README.md
Changes inclusion rules to exclude and from gpt/instructions.md. Adds a <direct_call_endpoint_list> block embedding gpt/direct_call_endpoint_list.md before <output_format_rules>.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor U as User
  participant G as GPT
  participant T as direct_api_call Tool
  participant B as Blockscout API

  U->>G: Request requiring raw API data
  G->>T: Invoke /direct_api_call<br/>with endpoint + query_params{sender}
  note right of T: New/explicit param: query_params.sender
  T->>B: HTTP request to curated endpoint<br/>+ deepObject query (sender)
  B-->>T: JSON response
  T-->>G: Tool result
  G-->>U: Final answer using API data
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

codex

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/adapt-gpt-to-0.10.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
gpt/direct_call_endpoint_list.md (1)

19-81: Unify placeholder naming for addresses.
Mixing {account_address} and {address} can confuse downstream agents. Prefer {address} consistently.

Example edits:

-"/api/v2/addresses/{account_address}/beacon/deposits" - "Get Beacon Chain deposits for a specific address."
+"/api/v2/addresses/{address}/beacon/deposits" - "Get Beacon Chain deposits for a specific address."

Please confirm all listed endpoints are allowed by your server-side allowlist used to validate direct_api_call.

gpt/README.md (1)

45-45: Tighten wording for the OpenAPI constraint.
Minor grammar and clarity tweak.

-- The specification of the `query_params` parameter for the `direct_api_call` tool is limited to define only `sender` to comply with OpenAPI linter used by OpenAI for API specification validation.
+- The `query_params` schema for `direct_api_call` is limited to the `sender` field to comply with the OpenAI OpenAPI linter used for API specification validation.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between b26b1cb and 18562cc.

📒 Files selected for processing (5)
  • gpt/README.md (2 hunks)
  • gpt/direct_call_endpoint_list.md (1 hunks)
  • gpt/instructions.md (2 hunks)
  • gpt/openapi.yaml (2 hunks)
  • tests/evals/README.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
gpt/openapi.yaml

📄 CodeRabbit inference engine (AGENTS.md)

Maintain OpenAPI 3.1 spec for REST endpoints used by GPT actions: keep tool descriptions under 300 chars, modify parameters for compliance (e.g., read_contract), and exclude the unlock_blockchain_analysis endpoint

Files:

  • gpt/openapi.yaml
gpt/instructions.md

📄 CodeRabbit inference engine (AGENTS.md)

Keep GPT core instructions synced with unlock_blockchain_analysis output; update whenever that tool’s output changes

Files:

  • gpt/instructions.md
🧠 Learnings (16)
📓 Common learnings
Learnt from: CR
PR: blockscout/mcp-server#0
File: AGENTS.md:0-0
Timestamp: 2025-08-29T22:52:53.439Z
Learning: Applies to gpt/instructions.md : Keep GPT core instructions synced with __unlock_blockchain_analysis__ output; update whenever that tool’s output changes
Learnt from: akolotov
PR: blockscout/mcp-server#203
File: SPEC.md:500-501
Timestamp: 2025-08-14T22:57:36.348Z
Learning: For the blockscout/mcp-server project, SPEC.md should contain concise, high-level descriptions of features rather than detailed technical implementation details. The user akolotov prefers that detailed technical information be discoverable through the code itself rather than extensively documented in the specification file.
Learnt from: CR
PR: blockscout/mcp-server#0
File: AGENTS.md:0-0
Timestamp: 2025-08-29T22:52:53.439Z
Learning: Applies to gpt/openapi.yaml : Maintain OpenAPI 3.1 spec for REST endpoints used by GPT actions: keep tool descriptions under 300 chars, modify parameters for compliance (e.g., read_contract), and exclude the __unlock_blockchain_analysis__ endpoint
📚 Learning: 2025-08-29T22:39:26.155Z
Learnt from: akolotov
PR: blockscout/mcp-server#226
File: tests/evals/GEMINI-evals.md:147-161
Timestamp: 2025-08-29T22:39:26.155Z
Learning: In the blockscout/mcp-server repository, the file tests/evals/GEMINI-evals.md contains instructions specifically for the Gemini CLI coding assistant. JSON examples in this file can include comments for instructional clarity since the AI agent understands to remove comments when generating actual JSON output.

Applied to files:

  • tests/evals/README.md
  • gpt/README.md
📚 Learning: 2025-08-29T22:52:53.439Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: AGENTS.md:0-0
Timestamp: 2025-08-29T22:52:53.439Z
Learning: Applies to gpt/instructions.md : Keep GPT core instructions synced with __unlock_blockchain_analysis__ output; update whenever that tool’s output changes

Applied to files:

  • tests/evals/README.md
  • gpt/instructions.md
📚 Learning: 2025-08-29T22:52:53.439Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: AGENTS.md:0-0
Timestamp: 2025-08-29T22:52:53.439Z
Learning: Applies to gpt/openapi.yaml : Maintain OpenAPI 3.1 spec for REST endpoints used by GPT actions: keep tool descriptions under 300 chars, modify parameters for compliance (e.g., read_contract), and exclude the __unlock_blockchain_analysis__ endpoint

Applied to files:

  • tests/evals/README.md
  • gpt/direct_call_endpoint_list.md
  • gpt/README.md
  • gpt/instructions.md
📚 Learning: 2025-08-22T00:10:26.559Z
Learnt from: akolotov
PR: blockscout/mcp-server#207
File: API.md:0-0
Timestamp: 2025-08-22T00:10:26.559Z
Learning: In API.md for the blockscout/mcp-server project, endpoint descriptions should be concise and follow the established pattern of other endpoints. They should not explain different parameter behaviors or how responses differ based on parameters - only provide a brief, high-level description of what the endpoint does.

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-08-29T22:52:53.439Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: AGENTS.md:0-0
Timestamp: 2025-08-29T22:52:53.439Z
Learning: Applies to blockscout_mcp_server/templates/index.html : Provide a static landing page for the REST API at templates/index.html

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-08-29T22:52:53.439Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: AGENTS.md:0-0
Timestamp: 2025-08-29T22:52:53.439Z
Learning: Applies to blockscout_mcp_server/api/routes.py : Define REST API endpoints that wrap MCP tools, exposing JSON responses mapped from tool outputs

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-08-21T04:33:09.906Z
Learnt from: akolotov
PR: blockscout/mcp-server#207
File: dxt/manifest.json:5-5
Timestamp: 2025-08-21T04:33:09.906Z
Learning: In the blockscout/mcp-server repository, the DXT manifest version (dxt/manifest.json) operates independently from the MCP server version (pyproject.toml and blockscout_mcp_server/__init__.py). The manifest version should only be bumped when: (1) the connection method to the server changes, (2) the number of MCP tools changes, or (3) tool descriptions change. The MCP server version tracks implementation changes and follows its own versioning scheme.

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-08-14T22:57:36.348Z
Learnt from: akolotov
PR: blockscout/mcp-server#203
File: SPEC.md:500-501
Timestamp: 2025-08-14T22:57:36.348Z
Learning: For the blockscout/mcp-server project, SPEC.md should contain concise, high-level descriptions of features rather than detailed technical implementation details. The user akolotov prefers that detailed technical information be discoverable through the code itself rather than extensively documented in the specification file.

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-08-29T00:45:41.007Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: .cursor/rules/130-version-management.mdc:0-0
Timestamp: 2025-08-29T00:45:41.007Z
Learning: Applies to blockscout_mcp_server/__init__.py : Update the __version__ variable in blockscout_mcp_server/__init__.py when bumping the MCP server version

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-07-10T23:39:32.034Z
Learnt from: akolotov
PR: blockscout/mcp-server#145
File: .cursor/rules/800-api-documentation-guidelines.mdc:14-35
Timestamp: 2025-07-10T23:39:32.034Z
Learning: In the Blockscout MCP Server project, API documentation in API.md intentionally omits example responses because the responses from Blockscout MCP tools are very large, and including them would make the document size unmanageable.

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-07-22T00:11:07.554Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: .cursor/rules/000-role-and-task.mdc:0-0
Timestamp: 2025-07-22T00:11:07.554Z
Learning: Applies to **/*.py : The MCP server must wrap Blockscout APIs and expose blockchain data (balances, tokens, NFTs, contract metadata) via the Model Context Protocol (MCP).

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-08-29T00:45:41.007Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: .cursor/rules/130-version-management.mdc:0-0
Timestamp: 2025-08-29T00:45:41.007Z
Learning: Applies to {pyproject.toml,blockscout_mcp_server/__init__.py} : Follow PEP 440 for the version string format (e.g., 1.2.3 or 1.2.3.dev0)

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-07-28T21:58:54.503Z
Learnt from: akolotov
PR: blockscout/mcp-server#185
File: blockscout_mcp_server/tools/chains_tools.py:20-20
Timestamp: 2025-07-28T21:58:54.503Z
Learning: API.md documents only the MCP server's own REST API endpoints (e.g., /v1/get_chains_list), not external API endpoints from services like Chainscout that the server consumes internally. Changes to external API endpoints used internally are implementation details and should not be documented in API.md.

Applied to files:

  • gpt/openapi.yaml
📚 Learning: 2025-08-29T22:52:53.439Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: AGENTS.md:0-0
Timestamp: 2025-08-29T22:52:53.439Z
Learning: Applies to gpt/action_tool_descriptions.md : Maintain detailed MCP tool descriptions; update whenever tools are modified or added

Applied to files:

  • gpt/README.md
  • gpt/instructions.md
📚 Learning: 2025-07-22T00:14:25.129Z
Learnt from: CR
PR: blockscout/mcp-server#0
File: .cursor/rules/800-api-documentation-guidelines.mdc:0-0
Timestamp: 2025-07-22T00:14:25.129Z
Learning: Applies to API.md : Whenever a new MCP tool is added or an existing one is modified, its corresponding REST API endpoint in API.md MUST be added or updated.

Applied to files:

  • gpt/README.md
🪛 LanguageTool
gpt/README.md

[grammar] ~45-~45: There might be a mistake here.
Context: ...mited to define only sender to comply with OpenAPI linter used by OpenAI for API s...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...ed GPT Configuration - Model: GPT-5 - Capabilities: - Web Search - Code ...

(QB_NEW_EN)


[grammar] ~50-~50: There might be a mistake here.
Context: ... - Model: GPT-5 - Capabilities: - Web Search - Code Interpreter and Data...

(QB_NEW_EN)


[grammar] ~51-~51: There might be a mistake here.
Context: ...GPT-5 - Capabilities: - Web Search - Code Interpreter and Data Analysis - C...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...h - Code Interpreter and Data Analysis - Canvas ## Known Issues 1. **Block time...

(QB_NEW_EN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Run Integration Tests
  • GitHub Check: Docker build and docker push
🔇 Additional comments (8)
gpt/instructions.md (2)

1-1: Version bump looks good.
Matches PR intent to adapt for 0.10.0 docs.


24-28: Prefix filenames in prerequisites with “@” (gpt/instructions.md:24–28)
Change the prerequisites to use @action_tool_descriptions.md and @direct_call_endpoint_list.md to match the README’s attachment convention.

Apply:

<prerequisites>
 Before answering any user question, always read:
- `action_tool_descriptions.md`
- `direct_call_endpoint_list.md`
</prerequisites>

to

<prerequisites>
 Before answering any user question, always read:
- `@action_tool_descriptions.md`
- `@direct_call_endpoint_list.md`
</prerequisites>

Also confirm these instructions remain synced with the latest __unlock_blockchain_analysis__ tool output.

gpt/openapi.yaml (1)

6-6: OpenAPI info.version updated to 0.10.0 — OK.
Consistent with the PR title and MCP Server 0.10.0 context.

gpt/direct_call_endpoint_list.md (1)

3-17: Good extraction of advanced endpoints into a separate doc.
Separation reduces instruction size and keeps the list maintainable.

tests/evals/README.md (1)

60-64: Assembly order and inclusions look correct.
Excluding <role> and <prerequisites> and injecting <direct_call_endpoint_list> aligns with the new docs split.

gpt/README.md (3)

19-22: “Extra files” section — clear and useful.
Explains why the split exists given GPT token limits.


23-34: Maintenance notes are good; mirror file names in instructions.
Ensure gpt/instructions.md references the “@”-prefixed names to match this README.


53-54: Canvas capability addition — OK.
Accurately reflects current GPT feature set.

@akolotov akolotov merged commit cdeb14b into main Sep 2, 2025
8 checks passed
@akolotov akolotov deleted the chore/adapt-gpt-to-0.10.0 branch September 2, 2025 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant