Skip to content

feat: rebuild axanta-erp MCP server with FastMCP - #4

Draft
vidaunited wants to merge 2 commits into
mainfrom
claude/add-dev-skills-x0xkgq
Draft

feat: rebuild axanta-erp MCP server with FastMCP#4
vidaunited wants to merge 2 commits into
mainfrom
claude/add-dev-skills-x0xkgq

Conversation

@vidaunited

Copy link
Copy Markdown
Owner

Summary

  • Rebuilt the Axanta ERP MCP server (tools/mcp-servers/axanta_mcp_server.py) following the mcp-builder skill's best practices
  • Upgraded from low-level mcp.server.Server to FastMCP framework with Pydantic input validation, tool annotations, and lifespan-managed connections
  • Updated skills/axanta-erp/SKILL.md to reflect new namespaced tool names and updated install instructions

What changed

MCP Server (axanta_mcp_server.py)

Before After
mcp.server.Server (low-level) FastMCP with lifespan context manager
Auth at module import (crashes if env vars missing) Lazy auth via app_lifespan with clear error messages
Raw dict input schemas Pydantic BaseModel with Field() constraints and field_validator
No pagination metadata Full pagination: total, count, offset, has_more, next_offset
Generic tool names (search_records) Namespaced names (axanta_search_records) to prevent conflicts
No tool annotations Full annotations: readOnlyHint, destructiveHint, idempotentHint, openWorldHint
Bare except Exception returning raw errors Actionable error messages for AccessError, MissingError, ConnectionRefused, etc.

Skill file (SKILL.md)

  • Updated install command: pip install "mcp[cli]" pydantic
  • Updated tool name table to match new axanta_ prefixed names

Test plan

  • Run python3 -c "import py_compile; py_compile.compile('tools/mcp-servers/axanta_mcp_server.py', doraise=True)" — syntax check passes
  • Set AXANTA_URL, AXANTA_DB, AXANTA_USER, AXANTA_KEY env vars and run claude mcp add axanta-erp -- python3 tools/mcp-servers/axanta_mcp_server.py
  • Verify /mcp shows axanta-erp server with all 12 tools
  • Test read-only tools: axanta_get_inventory, axanta_get_customers, axanta_get_sales_summary
  • Test write tools: axanta_create_record, axanta_update_record
  • Verify pagination works with offset parameter

🤖 Generated with Claude Code

https://claude.ai/code/session_01DabQMAvcuSTywVbemuNSsu


Generated by Claude Code

claude added 2 commits June 28, 2026 20:08
Rewrites the Axanta ERP MCP server following the mcp-builder skill
guidelines: FastMCP framework, Pydantic input validation, tool
annotations, lifespan-managed connection, proper pagination with
offset/total metadata, actionable error messages, and namespaced
tool names (axanta_ prefix).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DabQMAvcuSTywVbemuNSsu
Adds one-command setup script, requirements.txt, Claude Desktop
config template, and updated SKILL.md with streamlined install
instructions. Users can now run `bash tools/mcp-servers/setup.sh`
to install deps, configure credentials, and register the server.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DabQMAvcuSTywVbemuNSsu
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