Skip to main content
Glama

License: MIT Python 3.11+ MCP Claude Agent SDK

๐Ÿ”Œ 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:#334155
  • Tool 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 mcp SDK, over stdio

Claude Desktop, Claude Code, any MCP client

๐Ÿš€ Quickstart

IMPORTANT

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 list

3. Connect a client โ€” for example, Claude Code serving the clock:

claude mcp add ai-armory -- ai-armory serve --toolsets clock
TIP

Claude 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

sdk

claude-agent-sdk, for the in-process adapter

clock

the clock tool set

google

the Google client libraries, shared by all seven Google tool sets

gmail ยท calendar ยท chat ยท docs ยท sheets ยท slides ยท drive

the same as google

mac

nothing more: mac runs macOS's own programs

all

sdk + clock + google + mac

dev

all + pytest + anyio

๐Ÿงฐ Everyday commands

Command

What it does

๐Ÿ“‹

ai-armory list

See the tool sets

๐Ÿ”Œ

ai-armory serve --toolsets clock

Serve chosen tool sets over stdio

๐Ÿ“ฌ

ai-armory serve --toolsets google

A group: all seven Google tool sets

โž•

ai-armory serve --toolsets mac,clock

Several, comma-separated

๐ŸŒ

ai-armory serve

Serve every installed tool set

๐Ÿ”‘

python -m ai_armory.toolsets.google login work

Sign a Google account in

  • serve --name <name> sets the server name reported to the client (default ai-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]"
pytest

See ๐Ÿงฉ 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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    348 npm
    Apache 2.0
  • F
    license
    Not graded
    quality
    A
    maintenance
    Exposes 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.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Exposes 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.
    -