mcpField
M
MCPApp

MCPApp

Local
github.com/tanaikechDeveloper Tools50Updated 18w ago

About MCPApp

MCPApp is a library for building MCP servers and clients on Google Apps Script. Its README provides sample curl commands for testing the initialize, tools/list, prompts/list and tools/call methods. The project notes integration with GASADK.

Key features

  1. 01MCP server built on Google Apps Script
  2. 02Supports initialize, tools/list, prompts/list, tools/call
  3. 03Optional LockService for concurrency control
  4. 04Spreadsheet-based message logging
  5. 05BeforeTool and AfterTool hook support

Use cases

  1. 01Hosting an MCP server in Google Apps Script for Gemini CLI
  2. 02Building MCP clients or an MCP network with GAS
  3. 03Logging MCP messages to a sheet for debugging

MCP support

MCPApp implements the MCP server side in Google Apps Script, exposing tools and prompts to clients such as Gemini CLI, and can also be used to build MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"MCPApp": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
Run commandnpx -y mcp-remote

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-remote

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCPApp

MIT License

MseeP.ai Security Assessment Badge


🚀 Special Announcement: Integrated with GASADK!

MCPApp is now fully supported and can be used directly from GASADK (Google Apps Script Agent Development Kit). GASADK provides a comprehensive framework for building powerful multi-agent systems and utilizing MCP tools seamlessly in Google Apps Script.

👉 Check out GASADK on GitHub to boost your development!


Overview

The Model Context Protocol (MCP) is an emerging standard designed to function as a universal adapter, enabling AI applications to seamlessly and securely connect with external systems and data sources. The core purpose of MCP is to provide a standardized method for AI models to request and receive contextually relevant information, which is crucial for performing complex tasks.

This repository introduces two directions:

  1. An MCP server built with Google Apps Script for Gemini CLI and other MCP clients.
  2. An MCP network built with Google Apps Script.

Sample curl commands for testing MCP server

initialize

curl -L "<YOUR_MCP_SERVER_URL>" -d '{"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"sample-mcp-client","version":"0.0.0"}},"jsonrpc":"2.0","id":0}'

tools/list

curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

prompts/list

curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":1,"method":"prompts/list","params":{}}'

tools/call

curl -L "<YOUR_MCP_SERVER_URL>" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"<TOOL_NAME>","arguments":{<ARGUMENTS_FOR_TOOL>}}}'

Licence

MIT

Author

Tanaike

Donate

Update History

  • v1.0.0 (May 8, 2025)

    1. Initial release.
  • v1.0.1 (May 9, 2025)

    1. A bug in the logging was removed.
  • v1.0.2 (May 29, 2025)

    1. From v1.0.2, in order to use MCPApp as a library, LockService is given.
  • v2.0.0 (June 12, 2025)

    1. From v2.0.0, both the MCP client and the MCP server can be built by Google Apps Script.
  • v2.0.1 (June 18, 2025)

    1. A bug was removed.
  • v2.0.2 (June 19, 2025)

    1. A bug was removed.
  • v2.0.3 (July 1, 2025)

    1. A bug was removed.
  • v2.0.4 (July 2, 2025)

    1. A bug was removed.
  • v2.0.5 (July 31, 2025)

    1. A bug was removed.
  • v2.0.6 (August 1, 2025)

    1. "prompts/get" method was updated.
  • v2.0.7 (August 6, 2025)

    1. Starting with v2.0.7, you can now selectively enable or disable the LockService.
    • By default, this library runs with the LockService enabled. To disable it, simply modify return new MCPApp.mcpApp({ accessKey: "sample" }) to return new MCPApp.mcpApp({ accessKey: "sample", lock: false }).
    • When the LockService is disabled (lock: false), asynchronous requests from clients like the Gemini CLI may see an increase in processing speed. However, it's important to note that the maximum number of concurrent requests must not exceed 30. Please use this option with caution.
  • v2.0.8 (August 6, 2025)

    1. A bug was removed.
  • v2.0.10 (May 9, 2026)

    1. Refactored MCPApp.
  • v2.0.11 (May 9, 2026)

    1. A bug was removed.
  • v2.1.0 (May 10, 2026)

    1. A bug was removed.
  • v2.1.1 (May 12, 2026)

    1. A bug was removed.
  • v2.1.2 (May 12, 2026)

    1. Modified
  • v2.1.7 (May 15, 2026)

    1. Several bugs were removed.
  • v2.2.0 (May 19, 2026)

    1. const mcpServers = ["mcp-url-1", { "mcp-server-name": { "httpUrl": "https://mcp-url-2", "headers": { "key": "value" } } }] can be used for using MCP servers.
  • v2.3.0 (June 10, 2026)

    1. Added multi-channel sheet logging. When a spreadsheet ID is specified, logs are stored in the "MCP" sheet; otherwise, the "log" sheet is used. Headers ["Date", "Method", "ID", "Direction", "Message"] are automatically created with formatting, and sheets are initialized thread-safely under LockService lock.
    2. Enhanced error messaging by prefixing with [MCP Server Error] or [MCP Client Error] to simplify debugging.
  • v2.4.0 (June 24, 2026)

    1. Upgraded default model to models/gemini-3.1-flash-lite.
    2. Integrated GasHookManager compatibility to support BeforeTool and AfterTool hooks on the MCP server side.

TOP

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.