Skip to content

Conversation

@Scra3
Copy link
Member

@Scra3 Scra3 commented Dec 22, 2025

Summary

Add MCP tools for working with Forest Admin actions:

getActionForm

  • Load form fields for an action with dynamic form support
  • Shows field types, options, validation, and widget metadata
  • Supports multi-page forms
  • Returns hints (canExecute, requiredFieldsMissing)

executeAction

  • Execute actions with form values
  • Support for file download responses (returns base64-encoded data)
  • Activity logging with 'executeAction' action

Other changes

  • getActionEndpoints helper in schema-fetcher
  • ActionEndpointsMap export in agent-caller
  • queryWithFileSupport method in agent-client HttpRequester
  • executeWithFileSupport method in agent-client Action

Dependencies

This PR is based on #1389 (feat/update) and should be merged after it.

Test plan

  • Unit tests for getActionForm tool (25 tests)
  • Unit tests for executeAction tool (25 tests)
  • All agent-client tests pass (152 tests)
  • All mcp-server tests pass (414 tests)

🤖 Generated with Claude Code

alban bertolini and others added 6 commits December 22, 2025 14:51
Add a new MCP tool that provides detailed information about a collection:
- Fields with types, operators, and metadata (isPrimaryKey, isReadOnly, etc.)
- Relations with type (one-to-many, many-to-many, etc.) and target collection
- Actions available on the collection with form information

Also adds the capabilities() method to agent-client Collection class
to fetch field operators from the agent.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
…ny relations

Add a new MCP tool that retrieves records from HasMany and BelongsToMany relations:
- Supports all list options (filters, search, sort, pagination, fields)
- enableCount option to also return totalCount
- Helpful error messages when relation name is invalid
- Activity logging with 'listHasMany' action

Also adds count() method to agent-client Relation class and exports
ListArgument and createListArgumentShape from list.ts for reuse.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add a new MCP tool to delete one or more records from a collection:
- Accepts collectionName and recordIds array
- Activity logging with 'delete' action
- Returns success message with count of deleted records

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add a new MCP tool to create records in a collection:
- Accepts collectionName and attributes object
- Handles LLM sending attributes as JSON string
- Activity logging with 'create' action
- Returns the created record

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add a new MCP tool to update records in a collection:
- Accepts collectionName, recordId and attributes object
- Handles LLM sending attributes as JSON string
- Activity logging with 'update' action
- Returns the updated record

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add MCP tools for working with Forest Admin actions:

getActionForm:
- Load form fields for an action with dynamic form support
- Shows field types, options, validation, and widget metadata
- Supports multi-page forms
- Returns hints (canExecute, requiredFieldsMissing)

executeAction:
- Execute actions with form values
- Support for file download responses (returns base64-encoded data)
- Activity logging with 'executeAction' action

Also adds:
- getActionEndpoints helper in schema-fetcher
- ActionEndpointsMap export in agent-caller
- queryWithFileSupport method in agent-client HttpRequester
- executeWithFileSupport method in agent-client Action

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@qltysh
Copy link

qltysh bot commented Dec 22, 2025

13 new issues

Tool Category Rule Count
qlty Structure Function with high complexity (count = 12): queryWithFileSupport 5
qlty Structure Function with many parameters (count = 4): declareDeleteTool 4
qlty Duplication Found 15 lines of similar code in 2 locations (mass = 79) 2
qlty Structure Complex binary expression 1
qlty Structure High total complexity (count = 68) 1

@qltysh
Copy link

qltysh bot commented Dec 22, 2025

Qlty

Coverage Impact

This PR will not change total coverage.

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

@Scra3 Scra3 force-pushed the feat/update branch 4 times, most recently from 7cd3aa0 to aace3c0 Compare December 24, 2025 13:42
Base automatically changed from feat/update to main December 24, 2025 14:22
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.

2 participants