Open-Source MCP Server for AppSheet - Connect AI Assistants to Your Apps

Hey everyone! :waving_hand:

I built and open-sourced an MCP (Model Context Protocol) server for AppSheet — it lets AI assistants like Claude, Gemini, Cursor, and VS Code Copilot interact directly with your AppSheet apps through natural language.

What can it do?

  • :magnifying_glass_tilted_left: Query data — “Show me all active customers from my CRM”
  • :plus: Add rows — “Add a new order for Acme Corp, 50 widgets”
  • :pencil: Update records — “Change order #123 status to Shipped”
  • :wastebasket: Delete rows — “Remove all cancelled orders”
  • :clipboard: Discover schema — “What tables and columns does my app have?”
  • :high_voltage: Trigger actions — “Run the Send Invoice action on order #456

Why I built this

There’s no free, open-source, self-hosted option to connect AI assistants to AppSheet. I’ve delivered 49+ AppSheet projects and kept running into the same need — so I built it.

Quick Setup (2 minutes)

  1. Get your API key from AppSheet Editor → Settings → Integrations
  2. Add this to your AI assistant config:
{
  "mcpServers": {
    "appsheet": {
      "command": "npx",
      "args": ["-y", "appsheet-mcp-server"],
      "env": {
        "APPSHEET_APP_ID": "your-app-id",
        "APPSHEET_API_KEY": "V2-your-api-key"
      }
    }
  }
}

Links

npm: appsheet-mcp-server
GitHub: github.com/IslomIlkhom/appsheet-mcp-server

17 Likes

Thank you very much, @Islom, for sharing this with the community. I am certain this resource will prove beneficial to many users.

5 Likes

Thank you @Islom.
@Shourya_Tomar ,
Request you to move it to the tips and tricks section for a better visibility.

4 Likes

Thanks @Shourya_Tomar! Glad to share it with the community, hope it helps people build more powerful workflows with their AppSheet apps.

8 Likes

“Hello Islom, first of all, thank you for your efforts and sharing. I haven’t tried your assistant yet but I have a few questions. I also tried to create an AI assistant for a specific task in my application. After that, I wondered whether I should integrate this assistant with AppSheet or create it directly without including AppSheet by connecting to the database. Did you face a similar dilemma? What were the advantages of choosing AppSheet over database, and did you notice any disadvantages compared to the other option?”

1 Like

@Islom

Thanks @Islom . Can I ask if you have used the official private preview one, or what the differences are?

1 Like

Hi @Onur_Yazici, sorry for late reply. I hit the same problem. I went with AppSheet because it already holds my security rules, access controls, and bots so the agent plays by the same rules as my users and my automations still fire. Downside is the extra hop: a bit slower and bound by API limits. If you need heavy bulk writes or big queries, direct DB wins. What are you building?

1 Like

Hi @tjr2484, No, I did not use it. I think flow is similar with what I built (I hope)).

1 Like

Hi Islom,

I had two different AI-related needs in my projects.

The first one was about handling paper forms captured in the field. Instead of uploading the raw photos as-is, I wanted them to be automatically cropped and document-scanned via an API before being stored in Drive — all integrated with AppSheet. I actually tried two of Google’s APIs with some AI assistance, but unfortunately I couldn’t achieve the same quality of document scanning that Google Drive produces natively when you upload a file directly.

The second use case was generating work plans for operations. It’s a fairly complex task, and for this one I ended up connecting directly to Google Sheets rather than AppSheet itself. While working on it, I kept going back and forth on whether to connect through Google Sheets or directly through AppSheet. After some research though, I came across posts stating that AppSheet DB doesn’t support direct API connections — meaning if you need a direct database integration in your app, AppSheet Database simply can’t be the data source for that.

1 Like

Hi Onur,

For document scanning - I actually built a full pipeline for this. It uses Google Apps Script + Gemini API: files land in a Drive inbox folder, get content-hashed for dedup, then AI classifies, extracts entities, and matches against a product catalog - all automated with time-based triggers. Works great for field-captured forms. Happy to share more details if useful!

1 Like

I was excited. But now I retract it a bit.

This is incredible for easily making this accessible to the Public, and of course there is a but…

  1. Google Post on an Private MCP project back in 2025, who knows what happened to it
  2. As far as your repo is concerned a few things here (yes I had AI look at it)

A. Schema: doesn’t expose Column Type, Virtual Columns, maybe?, eg. especially if things are REF linked, but that’s okay AI can be guided where needed

B. Run actions: this is the interesting part

  • does it list all your created actions expose via API?
  • does our appsheet editor even expose what their in API run_action names are?
  • are you referring to workflows from automation?

---- again a lot of what we all probably want are specifically just gated by appsheet gating what they want to reveal / allow done, but if we need to ‘guess’ what the action name is to trigger a grouped actions sequence (even if that sequence can live in API), is not clearly stated here

---- if anything this is great for quick non-Googlesheet (gspread, googlesheet api) fetching probably for understanding exactly what in your columns / rows, but it wouldn’t full help understand appsheets validation / types for columns and actual actions we can invoke that are not add , edit, delete

— give us more information please on actions your are triggering, are workflow names exposed? can we search through our available actions in the API?

Best regards!

1 Like

The AppSheet API has no schema endpoint, so describe_table infers names/types from sample rows; it can’t see Type definitions, validation, or virtual/REF columns. Same with actions: the API can’t list them, so run_action requires the exact name from your editor (row-level actions only). Where the API is gated, the server is gated too. Its real value today: structured CRUD + letting AI infer your data shape without the Sheets API. I’ll add a clear “limitations” section to the README. Thanks for digging in!

Reference: API integration points in AppSheet

3 Likes

Hola @Islom no lo he probado pero en la descripción no veo que mencione algo como que pudiera acceder a las formulas que tienen las distintas columnas, como App Formula, Initial Value, etc..

¿se puede actualmente?

1 Like

Hola @claudioasv! No, the AppSheet REST API doesn’t expose formula definitions (App Formula, Initial Value, etc.) - only the stored row data. The server can infer column names and sample values, but not the logic behind them. That’s an API limitation, not something we can work around. If Google opens that up in the future, we’ll add it!

1 Like

Update: Web App + New Tools :rocket:

Quick update for everyone following this thread:

:globe_with_meridians: Web App (no install)
Built a browser-based version — runs entirely in Google Apps Script with a built-in chat UI. No terminal needed. Supports Gemini, OpenAI, and Claude. Just copy the project, deploy as a web app, paste your credentials and start chatting.

:hammer_and_wrench: 10 tools now
Added add_rows, update_rows, delete_rows, and run_action — full CRUD + automation.

:page_facing_up: README rewritten
Simplified, added collapsible sections, added a Limitations section (thanks @ktsmediaprod2 for pushing on that).

Links:

2 Likes