ai-armory
Provides tools for Gmail, enabling AI agents to interact with email, including creating drafts and confirming sends.
Provides tools for Google Workspace services, including Gmail, Calendar, Chat, Docs, Sheets, Slides, and Drive, across multiple accounts.
Provides tools to control macOS, including sending notifications, opening apps and links, running Apple Shortcuts, controlling volume, and accessing the clipboard.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
π Serving Β· π¬ Google Β· π Mac Β· π§© Writing a tool set Β· π€ Contributing
AI Armory is a collection of MCP tool sets: Google Workspace and Mac control today, with GitHub and more planned. Each tool set is a separate module you can load on its own, written in plain Python with no MCP imports. Load the ones you want, then serve them in-process to the Claude Agent SDK or over stdio to any MCP client.
π Plain Python
A tool is an async function plus a JSON Schema. No MCP library in sight.
π¦ Only what you use
Each tool set has its own extra, so you install only its dependencies.
π Safe by design
Sends and deletes are flagged for the host to confirm. AI Armory never prompts.
β¨ Tool sets
π¬ Google Workspace
gmail Β· calendar Β· chat Β· docs Β· sheets Β· slides Β· drive across any number of accounts, or all seven as the google group.
π Mac Notifications, apps and links, Apple Shortcuts, the volume and the clipboard on this Mac. Nothing to configure.
β° Clock
clock: the current date and time, in any IANA time zone.
π§© Your own Add a module here, or ship one in another package through an entry point.
Related MCP server: Slipway
π§ How it fits together
flowchart TB
google["π¬ google<br/>gmail Β· calendar Β· chat Β· docs<br/>sheets Β· slides Β· drive"]
mac["π mac"]
clock["β° clock"]
plugin["π your package<br/>via entry point"]
registry[["π registry Β· load_many()"]]
subgraph Adapters["π Adapters"]
direction LR
sdk["π claude_sdk.py<br/>create_sdk_server()"]
stdio["π₯οΈ stdio.py<br/>ai-armory serve"]
end
agent(["π€ Claude Agent SDK apps"])
clients(["π¬ Claude Desktop Β· Claude Code<br/>any MCP client"])
google & mac & clock --> registry
plugin -.-> registry
registry --> sdk & stdio
sdk -->|"in-process"| agent
stdio -->|"stdio"| clients
classDef set fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e
classDef ext fill:#f1f5f9,stroke:#64748b,stroke-dasharray:5 4,color:#0f172a
classDef core fill:#ede9fe,stroke:#7c3aed,color:#2e1065
classDef adapter fill:#fff7ed,stroke:#ea580c,color:#7c2d12
classDef host fill:#ecfdf5,stroke:#059669,color:#064e3b
class google,mac,clock set
class plugin ext
class registry core
class sdk,stdio adapter
class agent,clients host
style Adapters fill:#f8fafc,stroke:#94a3b8,color:#334155Tool sets (blue) are plain Python with no MCP imports; the registry loads them by name.
Adapters turn the same tool sets into an in-process SDK server or a stdio MCP server.
Mode | Built on | Typical host |
In-process | Claude Agent SDK MCP server | Your own Agent SDK app, e.g. a voice assistant |
Standalone | Official | Claude Desktop, Claude Code, any MCP client |
π Quickstart
NeedsPython 3.11+. The mac tool set works only on macOS; the rest run anywhere.
1. Install β clone, then install everything or just the extras you need:
git clone https://github.com/anilkumarmeena/ai-armory
cd ai-armory
pip install -e ".[all]"2. Look around β list the tool sets this install can load:
ai-armory list3. Connect a client β for example, Claude Code serving the clock:
claude mcp add ai-armory -- ai-armory serve --toolsets clockClaude Desktop config, the in-process adapter and how confirmation reaches the host are inπ Serving. The Google tool sets need a one-time sign-in: see π¬ Google βΊ Configure.
π¦ Install extras
pip install -e ".[all]" # everything
pip install -e ".[sdk,clock]" # the Agent SDK adapter and the clock tool set
pip install -e ".[google]" # the Google tool sets (gmail, calendar, chat, docs, sheets, slides, drive)Extra | Installs |
|
|
| the |
| the Google client libraries, shared by all seven Google tool sets |
| the same as |
| nothing more: |
|
|
|
|
π§° Everyday commands
Command | What it does | |
π |
| See the tool sets |
π |
| Serve chosen tool sets over stdio |
π¬ |
| A group: all seven Google tool sets |
β |
| Several, comma-separated |
π |
| Serve every installed tool set |
π |
| Sign a Google account in |
serve --name <name>sets the server name reported to the client (defaultai-armory).
π Documentation
π Serving Standalone over stdio, in-process with the Agent SDK, and how confirmation reaches the host.
π¬ Google Every Google tool, accounts, the draft-then-confirm flow, and setup.
π Mac The seven Mac tools, what each runs, and macOS permissions.
π§© Writing a tool set Adding a tool set, plugins from other packages, the code layout and tests.
π Safety at a glance
Tools that send, delete or otherwise act on the world are declared
needs_confirmation=True; the host gates them.Google sends and deletes are two tools: draft, then confirm, and a draft can be used once at most.
Nothing here sends email without a confirmed draft, trashes mail, deletes a document, spreadsheet, deck or row, or changes, shares or deletes a Drive file.
Tools that return other people's text tell the model not to follow instructions in it.
Details: π Serving βΊ Confirmation and π¬ Google βΊ Draft, then confirm.
π§ͺ Development
pip install -e ".[dev]"
pytestSee π§© Writing a tool set to add your own.
π€ Contributing
Issues and pull requests are welcome. π€ Contributing covers setup with uv, the checks, code style and what makes a pull request easy to merge.
π License
MIT, see LICENSE.
AI Armory Β· tools for agents, written once
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Nifty's MCP server β exposes tasks, projects, messages, and files as tools for AI agents.
Toolstile is a managed MCP gateway that connects remote MCP servers behind one endpoint, with per-agent permissions, shared accounts and activity logs. Connect at https://mcp.toolstile.com/mcp over Streamable HTTP with OAuth; sign in at https://toolstile.com, select a workspace and connect your upstream servers. Available tools, resources and prompts depend on that workspace and the agent's granted access.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to securely discover, execute, and observe tools with role-based access control and audit logging. Serves tools over MCP stdio and HTTP for integration with Claude Desktop, Cursor, and other clients.1-
- AlicenseNot gradedqualityBmaintenanceEnables developers to expose a single set of tool definitions as MCP server tools over stdio or Streamable HTTP, so Claude Code, Codex, Claude Desktop and Cursor can call them with risk-based annotations, human-approved irreversible writes, typed structured results and long-running job handling built in. It also ships the same tools as a CLI from one source, keeping both surfaces in parity.594 npmApache 2.0
- FlicenseNot gradedqualityAmaintenanceExposes a governed suite of 38 tools over a single OAuth-gated MCP endpoint, letting web-based AI clients such as Claude, ChatGPT, and Grok read and edit files, run whitelisted shell commands, search, query SQLite, use Git, automate browsers and DevTools, manage background tasks, reach localhost services, and control the clipboard, notifications, ports, and Postman. This turns remote AI chats into secure operators of a local machine without granting unrestricted shell access.-
- FlicenseNot gradedqualityAmaintenanceExposes a governed suite of 38 tools over one OAuth-gated MCP endpoint, letting web-based AI clients such as Claude, ChatGPT, and Grok read and edit files, run whitelisted shell commands, search content, use Git, inspect SQLite databases and localhost APIs, automate browsers, manage background tasks, and control Postman. It runs locally with a tailnet or public ingress so browser-based chats can act on your own machine without granting unrestricted shell access.-