Skip to Content
MCP ServersCommunityXano MCP Server

Xano MCP Server

View original on GitHub 

A Model Context Protocol (MCP) server implementation for interacting with the Xano API. This server provides tools and resources for managing Xano database operations through the MCP interface.

Features

  • Secure authentication with Xano API
  • Type-safe API interactions using TypeScript
  • Environment-based configuration
  • MCP-compliant interface
  • Workspace management tools
  • Table content operations (create, read, update)
  • Improved error handling with detailed messages

Installation

# Clone the repository git clone [your-repo-url] cd xano_mcp # Install dependencies npm install

Configuration

  1. Copy the example environment file:
cp .env.example .env
  1. Update the .env file with your Xano credentials:
XANO_API_KEY=your_api_key_here XANO_API_URL=your_xano_api_url NODE_ENV=development API_TIMEOUT=10000

Development

# Build the project npm run build # Run in development mode npm run dev # Start the server npm start

Project Structure

xano_mcp/ β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ api/ β”‚ β”‚ └── xano/ β”‚ β”‚ β”œβ”€β”€ client/ # API client implementation β”‚ β”‚ β”œβ”€β”€ models/ # Data models and types β”‚ β”‚ β”œβ”€β”€ services/ # API service implementations β”‚ β”‚ └── utils/ # Utility functions β”‚ β”œβ”€β”€ mcp/ β”‚ β”‚ β”œβ”€β”€ server/ # MCP server implementation β”‚ β”‚ β”œβ”€β”€ tools/ # MCP tool implementations β”‚ β”‚ └── types/ # Tool-specific types β”‚ β”œβ”€β”€ config.ts # Configuration management β”‚ └── index.ts # Main entry point β”œβ”€β”€ .env # Environment variables (not in git) β”œβ”€β”€ .env.example # Example environment variables └── tsconfig.json # TypeScript configuration

Available MCP Tools

Workspace Tools

  • get_workspaces: List all available workspaces

Table Tools

  • create_table: Create a new table in a workspace
  • get_table_content: Get content from a table with pagination support
  • add_table_content: Add new content to a table
  • update_table_content: Update existing content in a table
  • get_all_tables: List all tables in a workspace with detailed information

Usage Examples

Working with Workspaces

// List available workspaces const result = await mcp.use_tool("get_workspaces", {}); console.log('Workspaces:', result);

Managing Tables

// Create a new table const createResult = await mcp.use_tool("create_table", { workspaceId: 123, name: "MyTable" }); // Add content to a table const addResult = await mcp.use_tool("add_table_content", { workspaceId: 123, tableId: 456, content: { created_at: "2024-01-22T17:07:00.000Z" } }); // Get table content with pagination const getResult = await mcp.use_tool("get_table_content", { workspaceId: 123, tableId: 456, pagination: { page: 1, items: 50 } }); // Update table content const updateResult = await mcp.use_tool("update_table_content", { workspaceId: 123, tableId: 456, contentId: "789", content: { created_at: "2024-01-22T17:07:00.000Z" } }); // List all tables in a workspace const tables = await mcp.use_tool("get_all_tables", { workspaceId: 123 }); console.log('Tables:', tables); // Returns an array of tables with their details: // [ // { // id: number, // name: string, // description: string, // created_at: string, // updated_at: string, // guid: string, // auth: boolean, // tag: string[], // workspaceId: number // }, // ... // ]

Environment Variables

VariableDescriptionRequiredDefault
XANO_API_KEYYour Xano API authentication keyYes-
XANO_API_URLXano API endpoint URLYes-
NODE_ENVEnvironment (development/production)Nodevelopment
API_TIMEOUTAPI request timeout in millisecondsNo10000

Error Handling

The server provides detailed error messages for:

  • Invalid parameters
  • Authentication failures
  • API request failures
  • Content validation errors
  • Unknown tool requests

Security

  • Environment variables are used for sensitive configuration
  • TruffleHog configuration is included to prevent secret leaks
  • API keys and sensitive data are never committed to the repository

Contributing

  1. Create a feature branch
  2. Make your changes
  3. Submit a pull request

License

ISC

Last updated on