# Arvore MCP Servers

A collection of Model Context Protocol (MCP) servers developed by Arvore for seamless integration with AI assistants like Claude.

[![CI](https://github.com/arvoreeducacao/arvore-mcp-servers/actions/workflows/ci.yml/badge.svg)](https://github.com/arvoreeducacao/arvore-mcp-servers/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## 📦 Packages

This monorepo contains the following MCP servers:

### [@arvoretech/aws-secrets-manager-mcp](./packages/aws-secrets-manager)

Manage AWS Secrets Manager secrets directly from your AI assistant.

**Features:**

- Create, read, update, and delete secrets
- List all secrets in your account
- Describe secret metadata

### [@arvoretech/datadog-mcp](./packages/datadog)

Query and analyze Datadog monitoring data.

**Features:**

- Query metrics and time series data
- Search logs
- Get service maps and APM data
- List hosts and active metrics
- Search traces

### [@arvoretech/mysql-mcp](./packages/mysql)

Execute read-only MySQL queries safely.

**Features:**

- Execute SELECT queries
- List tables in database
- Read-only operations for safety

### [@arvoretech/postgresql-mcp](./packages/postgresql)

Execute read-only PostgreSQL queries safely.

**Features:**

- Execute SELECT queries
- List tables, schemas, and databases
- Describe table structure
- Full schema support
- Read-only operations for safety

### [@arvoretech/clickhouse-mcp](./packages/clickhouse)

Execute read-only ClickHouse queries safely.

**Features:**

- Execute SELECT queries
- List tables and databases
- Describe table structure (columns, types, keys)
- Read-only operations for safety

### [@arvoretech/npm-registry-mcp](./packages/npm-registry)

Search and get information about npm packages.

**Features:**

- Get package information and metadata
- Get download statistics
- Search packages by query

### [@arvoretech/launchdarkly-mcp](./packages/launchdarkly)

Manage LaunchDarkly feature flags directly from your AI assistant.

**Features:**

- List, search, create, and delete feature flags
- Toggle flags ON/OFF per environment
- Add targeting rules (in, contains, segmentMatch, etc.)
- List and inspect segments
- Multi-environment support (production, test, etc.)

### [@arvoretech/tempmail-mcp](./packages/tempmail)

Self-hosted temporary email server with SMTP + SQLite.

**Features:**

- Built-in SMTP server to receive real emails
- Create and manage temporary email accounts
- Read, list, and delete emails
- SQLite storage — no third-party dependencies
- Configurable domain via AWS Route 53

### [@arvoretech/google-chat-mcp](./packages/google-chat)

Google Chat integration for managing spaces, members, and messages.

**Features:**

- List and inspect Google Chat spaces
- List space members
- Read message history with filtering and pagination
- Send messages (with thread support)
- Delete messages
- Service account JWT auth (no external dependencies)
- Domain-wide delegation for full user-level access

### [@arvoretech/gmail-mcp](./packages/gmail)

Gmail integration — read, send, and manage messages with OAuth user flow.

**Features:**

- Search messages with full Gmail query syntax (`from:`, `is:unread`, `newer_than:`, etc.)
- Read messages and full threads with parsed headers and body
- Create drafts (always available, even with sending disabled)
- Send mail and reply with proper threading (`In-Reply-To`, `References`, `threadId`)
- Modify labels (mark read, archive, star, trash)
- OAuth Desktop client flow with browser-based login
- Encrypted token storage (AES-256-GCM + macOS keychain)
- Send-mode opt-in via `GMAIL_MCP_ALLOW_SEND` to prevent accidental sends

### [@arvoretech/google-slides-mcp](./packages/google-slides)

Google Slides integration — create, edit and visually inspect presentations.

**Features:**

- Search decks in Drive, create from scratch or copy a template
- Compact deck summary with object ids, placeholders and speaker notes
- Screenshot any slide as PNG so the model can verify layout visually
- Typed edits: add slide from layout, insert/replace text, insert image, speaker notes
- Raw `batchUpdate` escape hatch for full Slides API styling and geometry
- Export as pdf / pptx / txt
- Runs over stdio or streamable-http

### [@arvoretech/google-docs-mcp](./packages/google-docs)

Google Docs integration — create, read and edit documents.

**Features:**

- Search documents in Drive, create from scratch or copy a template
- Read a document as Markdown; map it as indexed blocks when editing
- Whole formatted document from Markdown in one call, no index math
- Typed edits: append styled paragraphs, insert text, tables, images, page breaks
- Text and paragraph formatting: styles, colors, links, alignment, bullets
- Raw `batchUpdate` escape hatch for the full Docs API
- Export as pdf / docx / txt / md / html / odt / rtf / epub
- Runs over stdio or streamable-http

### [@arvoretech/google-sheets-mcp](./packages/google-sheets)

Google Sheets integration — read, write, reshape and format spreadsheets.

**Features:**

- Search spreadsheets in Drive, create from scratch or copy a template
- Describe every tab with its gid, size, named ranges and a preview of the first rows
- Read and write A1 ranges, with formulas and locale-aware parsing
- Append rows to a table without computing where the data ends
- Manage tabs, insert and delete rows and columns, sort, find and replace
- Cell formatting: fonts, colors, alignment, wrapping, number formats
- Raw `batchUpdate` escape hatch for charts, borders, validation and filters
- Export as pdf / xlsx / csv
- Runs over stdio or streamable-http

### [@arvoretech/memory-mcp](./packages/memory)

Team memory — persistent knowledge base with semantic search for AI-assisted development.

**Features:**

- Semantic search across team memories using local embeddings
- Multilingual support (Portuguese + English) via `paraphrase-multilingual-MiniLM-L12-v2`
- Categories: decisions, conventions, incidents, domain, gotchas
- Create, archive, and remove memories via MCP tools
- Embedding cache for fast startup
- Keyword fallback when embeddings are unavailable

### [@arvoretech/runtime-lens-mcp](./packages/runtime-lens)

Runtime Lens — Runtime inspection with inline values for React, NestJS and Next.js. Two components in one package: a VS Code/Cursor/Kiro extension with inline value display and an MCP server for AI-assisted debugging.

**Features:**

- Inline runtime values displayed in the editor
- Runtime agent injected via `--require` that patches `console.log/warn/error/debug`
- WebSocket-based communication between agent and extension
- 14 MCP tools for AI-assisted debugging: log tailing, regex search, error inspection, HTTP request inspection, performance metrics, and more
- Framework detection for React, NestJS, and Next.js
- Real-time console capture with start/stop control
- Permanent setup via `~/.zshrc` — no need to inject every session

### [@arvoretech/meet-transcriptions-mcp](./packages/meet-transcriptions)

Semantic search across meeting transcriptions generated by Meet Transcriber.

**Features:**

- Semantic search using local multilingual embeddings (paraphrase-multilingual-MiniLM-L12-v2)
- LanceDB vector store with keyword fallback
- Filter by speaker
- List and retrieve full transcription content
- Reads `.md` files from `~/Documents/meet-transcriptions/` by default

### [@arvoretech/sendgrid-mcp](./packages/sendgrid)

Manage SendGrid Dynamic Templates directly from your AI assistant.

**Features:**

- List, create, update, and delete dynamic templates
- Create and manage template versions (HTML content, subject, plain text)
- Activate specific template versions
- Full CRUD for templates and versions via SendGrid API v3

### [@arvoretech/await-until-mcp](./packages/await-until)

Polling/waiting primitives — repeatedly check conditions until they're met or time out.

**Features:**

- Execute shell commands until output matches a condition
- Poll HTTP endpoints until they return expected status/body
- Watch filesystem until files exist, disappear, or contain content
- Call any other MCP server's tool and poll until the result matches (auto-discovers from mcp.json)
- Configurable interval, timeout, and match conditions

### [@arvoretech/mcp-proxy](./packages/mcp-proxy)

MCP Proxy Gateway — consolidates N upstream MCP servers behind 2 tools.

**Features:**

- Exposes only `mcp_search` and `mcp_call` to the agent
- Semantic search using multilingual embeddings (paraphrase-multilingual-MiniLM-L12-v2)
- Hybrid ranking: BM25 lexical + cosine similarity
- Output shaping: strips redundant fields, truncates text, assigns short refs
- Cursor-based pagination with TTL
- Supports stdio and HTTP transports with env var expansion

### [@arvoretech/agent-teams-lead-mcp](./packages/agent-teams-lead)

Agent Teams Lead — spawn and coordinate multiple AI agent sessions working together as a team. Inspired by [Anthropic's agent teams for Claude Code](https://code.claude.com/docs/en/agent-teams), built as an editor-agnostic MCP layer.

**Features:**

- Spawn teammates as independent CLI processes (Kiro, Cursor, Claude Code, OpenCode)
- Shared task list with dependencies and exclusive file paths
- Inter-agent messaging (direct, broadcast, or to lead)
- Atomic `mkdir`-based file locking for safe parallel task claiming
- Audit log in `.agent-teams/team.log`

### [@arvoretech/agent-teams-teammate-mcp](./packages/agent-teams-teammate)

Agent Teams Teammate — MCP injected into each teammate session for claiming tasks, messaging, and publishing artifacts.

**Features:**

- Claim pending tasks with dependency and lock validation
- Communicate with other teammates and the lead
- Publish artifacts (markdown, JSON, or code) linked to tasks
- Automatically injected by the lead — no manual configuration needed

### [@arvoretech/agent-teams-chat-mcp](./packages/agent-teams-chat)

Agent Teams Chat — cross-developer agent communication via Slack threads. Enables AI agents from different developers to communicate asynchronously through a shared Slack channel.

**Features:**

- Open conversation threads in a team Slack channel
- Reply to existing threads
- Read thread messages and catch up on conversations
- List recent threads with reply counts and participants
- Search threads by topic or content
- Configurable message format using handlebars-style templates

### [@arvoretech/agent-teams-ui](./packages/agent-teams-ui)

Agent Teams UI — TUI dashboard for monitoring agent teams in real time. Watches `.agent-teams/` and auto-refreshes.

**Features:**

- Team view with per-teammate task counts and current activity
- Kanban board with task selection and detail view
- WhatsApp-style message view with date separators and sender grouping
- Chat view showing agent stdout as conversation, filterable by agent
- Live timer, progress bar, and new-activity indicators per tab
- Auto-refresh via filesystem watching (chokidar)

### [@arvoretech/kanban-mcp](./packages/kanban)

Persistent kanban boards for AI agents — manage tasks across sessions with multi-agent coordination, semantic search, and a Linear-style web UI.

**Features:**

- 12 MCP tools for board and card management
- Multi-session: claim/release cards with session tracking across parallel chats
- Semantic search via LanceDB with multilingual embeddings
- Subtasks via `parent_card_id`
- Optional web UI (Linear-style dark theme with drag-and-drop, hotkeys, context menus)
- JSON persistence with atomic writes
- Re-read from disk for multi-process visibility

### [@arvoretech/metabase-mcp](./packages/metabase)

Interact with Metabase BI platform directly from your AI assistant.

**Features:**

- CRUD for cards (questions), dashboards, and collections
- List databases and tables
- Execute native SQL queries
- Run saved card queries
- Add cards to dashboards
- Get collection items

### [@arvoretech/mgc-mcp](./packages/mgc)

Manage Magalu Cloud infrastructure through the MGC CLI.

**Features:**

- Virtual Machines: list, create, start, stop, reboot, delete
- Object Storage: buckets and objects management
- Networking: VPCs, subnets, public IPs
- Kubernetes: cluster management and kubeconfig retrieval
- Block Storage and DBaaS instance listing
- Semantic search across Magalu developer documentation
- Configurable region via `MGC_REGION` env var

### [@arvoretech/arc-browser-mcp](./packages/arc-browser)

Control Arc Browser on macOS via a hybrid AppleScript + Chrome DevTools Protocol approach.

**Features:**

- Tab management: list, open, close, search, focus
- Space management: list, get active, switch
- Screenshots via CDP (viewport or full page)
- Network request capture and console log monitoring
- DOM interaction: click, hover, type, scroll, wait for selector
- JavaScript execution (AppleScript for quick queries, CDP for async/await)
- Cookie inspection and page content extraction

### [@arvoretech/posthog-mcp](./packages/posthog)

PostHog analytics, feature flags, experiments, and more. Works with both PostHog Cloud and self-hosted instances.

**Features:**

- HogQL queries and structured queries (Trends, Funnels, Retention, Lifecycle, Paths, Stickiness)
- Feature flags: create, update, list, delete with rollout control
- A/B test experiments with variants and metrics
- Dashboards and saved insights management
- Event and property definitions exploration
- Persons search and cohort management
- Surveys, early access features, and annotations
- Cross-entity search

### [@arvoretech/slack-advanced-mcp](./packages/slack-advanced)

Advanced Slack integration using user tokens -- messages sent as the authenticated user.

**Features:**

- Fuzzy user search with disk cache (47k+ users load instantly)
- Smart DM: resolve user by name/email/ID, auto-open DM channel
- Writing style analysis (emoji usage, punctuation, vocabulary, formality)
- Thread extraction from Slack URLs with participant resolution
- Audio transcription via ElevenLabs STT
- Image download and base64 return for model analysis
- Rate limit retry with backoff

### [@arvoretech/whatsapp-mcp](./packages/whatsapp)

Drive a single WhatsApp account from your AI agent using [Baileys](https://github.com/WhiskeySockets/Baileys).

**Features:**

- Pair via QR code (ASCII in terminal, PNG file, or base64 data URL)
- Send and receive text, images, audio (PTT or normal), video, and documents
- Local SQLite store for chats, messages, and contacts so the agent can recall past conversations
- Brazilian phone number normalization with WhatsApp-side validation
- Set typing presence, mark messages as read, react, edit, and delete
- Single connection — pair one WhatsApp account from your local agent

### [@arvoretech/leaf-mcp](./packages/leaf)

Read-only access to [Leaf](https://github.com/arvoreeducacao/leaf), Arvore's collaborative document editor.

**Features:**

- Full-text search over document titles and bodies
- Read any document as markdown (headings, lists, tables, code, images)
- Browse Notion-style databases: typed properties, views, and rows with resolved option names
- List organizations with members and teamspaces
- Read comment threads with replies, block anchors, and resolved state

## 🚀 Quick Start

### Installation

Install individual packages:

```bash
npm install -g @arvoretech/aws-secrets-manager-mcp
npm install -g @arvoretech/datadog-mcp
npm install -g @arvoretech/mysql-mcp
npm install -g @arvoretech/postgresql-mcp
npm install -g @arvoretech/clickhouse-mcp
npm install -g @arvoretech/npm-registry-mcp
npm install -g @arvoretech/launchdarkly-mcp
npm install -g @arvoretech/tempmail-mcp
npm install -g @arvoretech/google-chat-mcp
npm install -g @arvoretech/gmail-mcp
npm install -g @arvoretech/memory-mcp
npm install -g @arvoretech/runtime-lens-mcp
npm install -g @arvoretech/meet-transcriptions-mcp
npm install -g @arvoretech/sendgrid-mcp
npm install -g @arvoretech/await-until-mcp
npm install -g @arvoretech/mcp-proxy
npm install -g @arvoretech/agent-teams-lead-mcp
npm install -g @arvoretech/agent-teams-teammate-mcp
npm install -g @arvoretech/agent-teams-chat-mcp
npm install -g @arvoretech/metabase-mcp
npm install -g @arvoretech/mgc-mcp
npm install -g @arvoretech/kanban-mcp
npm install -g @arvoretech/posthog-mcp
npm install -g @arvoretech/slack-advanced-mcp
npm install -g @arvoretech/whatsapp-mcp
```

Or using pnpm:

```bash
pnpm add -g @arvoretech/aws-secrets-manager-mcp
```

### Configuration

Add to your Claude Desktop configuration file:

- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "aws-secrets-manager": {
      "command": "npx",
      "args": ["-y", "@arvoretech/aws-secrets-manager-mcp"]
    },
    "datadog": {
      "command": "npx",
      "args": ["-y", "@arvoretech/datadog-mcp"],
      "env": {
        "DATADOG_API_KEY": "your-api-key",
        "DATADOG_APP_KEY": "your-app-key",
        "DATADOG_SITE": "datadoghq.com"
      }
    },
    "mysql": {
      "command": "npx",
      "args": ["-y", "@arvoretech/mysql-mcp"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_USER": "readonly_user",
        "MYSQL_PASSWORD": "password",
        "MYSQL_DATABASE": "your_database",
        "MYSQL_PORT": "3306"
      }
    },
    "postgresql": {
      "command": "npx",
      "args": ["-y", "@arvoretech/postgresql-mcp"],
      "env": {
        "POSTGRESQL_HOST": "localhost",
        "POSTGRESQL_PORT": "5432",
        "POSTGRESQL_USER": "postgres",
        "POSTGRESQL_PASSWORD": "password",
        "POSTGRESQL_DATABASE": "your_database",
        "POSTGRESQL_SSL": "false"
      }
    },
    "clickhouse": {
      "command": "npx",
      "args": ["-y", "@arvoretech/clickhouse-mcp"],
      "env": {
        "CLICKHOUSE_URL": "https://your-host:8443",
        "CLICKHOUSE_USER": "default",
        "CLICKHOUSE_PASSWORD": "secret",
        "CLICKHOUSE_DATABASE": "default"
      }
    },
    "npm-registry": {
      "command": "npx",
      "args": ["-y", "@arvoretech/npm-registry-mcp"]
    },
    "launchdarkly": {
      "command": "npx",
      "args": ["-y", "@arvoretech/launchdarkly-mcp"],
      "env": {
        "LAUNCHDARKLY_EMAIL": "your-email@example.com",
        "LAUNCHDARKLY_PASSWORD": "your-password",
        "LAUNCHDARKLY_PROJECT": "default",
        "LAUNCHDARKLY_ENVIRONMENT": "production"
      }
    },
    "tempmail": {
      "command": "npx",
      "args": ["-y", "@arvoretech/tempmail-mcp"],
      "env": {
        "CLOUDFLARE_ACCOUNT_ID": "your-account-id",
        "CLOUDFLARE_D1_DATABASE_ID": "your-database-id",
        "CLOUDFLARE_API_TOKEN": "your-api-token",
        "TEMPMAIL_DOMAIN": "yourdomain.com"
      }
    },
    "google-chat": {
      "command": "npx",
      "args": ["-y", "@arvoretech/google-chat-mcp"],
      "env": {
        "GOOGLE_CHAT_CREDENTIALS_PATH": "/path/to/service-account.json",
        "GOOGLE_CHAT_USER_EMAIL": "user@yourdomain.com"
      }
    },
    "gmail": {
      "command": "npx",
      "args": ["-y", "@arvoretech/gmail-mcp"],
      "env": {
        "GMAIL_MCP_CLIENT_ID": "your-oauth-client-id",
        "GMAIL_MCP_CLIENT_SECRET": "your-oauth-client-secret",
        "GMAIL_MCP_ALLOW_SEND": "false"
      }
    },
    "team-memory": {
      "command": "npx",
      "args": ["-y", "@arvoretech/memory-mcp"],
      "env": {
        "MEMORY_PATH": "./memories"
      }
    },
    "runtime-lens": {
      "command": "npx",
      "args": ["-y", "@arvoretech/runtime-lens-mcp"],
      "env": {
        "RUNTIME_LENS_PROJECT_ROOT": "."
      }
    },
    "meet-transcriptions": {
      "command": "npx",
      "args": ["-y", "@arvoretech/meet-transcriptions-mcp"]
    },
    "sendgrid": {
      "command": "npx",
      "args": ["-y", "@arvoretech/sendgrid-mcp"],
      "env": {
        "SENDGRID_API_KEY": "SG.your-api-key"
      }
    },
    "await-until": {
      "command": "npx",
      "args": ["-y", "@arvoretech/await-until-mcp"]
    },
    "mcp-proxy": {
      "command": "node",
      "args": ["packages/mcp-proxy/dist/index.js"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MCP_PROXY_UPSTREAMS": "[{\"name\":\"mysql\",\"command\":\"npx\",\"args\":[\"-y\",\"@arvoretech/mysql-mcp\"],\"env\":{\"MYSQL_HOST\":\"${MYSQL_HOST}\"}}]"
      }
    },
    "agent-teams-lead": {
      "command": "npx",
      "args": ["-y", "@arvoretech/agent-teams-lead-mcp"],
      "env": {
        "WORKSPACE_PATH": "/path/to/your/workspace"
      }
    },
    "agent-teams-chat": {
      "command": "npx",
      "args": ["-y", "@arvoretech/agent-teams-chat-mcp"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-your-token",
        "SLACK_CHANNEL": "C0123456789",
        "AGENT_IDENTITY": "Your Name"
      }
    },
    "metabase": {
      "command": "npx",
      "args": ["-y", "@arvoretech/metabase-mcp"],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_API_KEY": "your-api-key"
      }
    },
    "mgc": {
      "command": "npx",
      "args": ["-y", "@arvoretech/mgc-mcp"],
      "env": {
        "MGC_REGION": "br-ne1",
        "MAGALU_DOCS_DIR": "./magalu-cloud-docs"
      }
    },
    "kanban": {
      "command": "npx",
      "args": ["-y", "@arvoretech/kanban-mcp"],
      "env": {
        "KANBAN_PATH": "./kanban",
        "KANBAN_UI": "true",
        "KANBAN_PORT": "4799"
      }
    },
    "posthog": {
      "command": "npx",
      "args": ["-y", "@arvoretech/posthog-mcp"],
      "env": {
        "POSTHOG_BASE_URL": "https://posthog.example.com",
        "POSTHOG_API_KEY": "phx_your_personal_api_key"
      }
    },
    "slack-advanced": {
      "command": "npx",
      "args": ["-y", "@arvoretech/slack-advanced-mcp"],
      "env": {
        "SLACK_USER_TOKEN": "xoxp-your-user-token",
        "ELEVENLABS_API_KEY": "sk_your-elevenlabs-key"
      }
    },
    "whatsapp": {
      "command": "npx",
      "args": ["-y", "@arvoretech/whatsapp-mcp"],
      "env": {
        "WHATSAPP_LOG_LEVEL": "warn"
      }
    }
  }
}
```

**Note:** These packages are published to the public npm registry and can be used directly with `npx` without any additional configuration.

## 🛠️ Development

### Prerequisites

- Node.js >= 20
- pnpm >= 9

### Setup

```bash
git clone https://github.com/arvoreeducacao/arvore-mcp-servers.git
cd mcp-servers
pnpm install
```

### Build all packages

```bash
pnpm build
```

### Run tests

```bash
pnpm test
```

### Run tests with coverage

```bash
pnpm test:cov
```

### Lint

```bash
pnpm lint
```

### Development mode

Run a specific package in development mode:

```bash
cd packages/aws-secrets-manager
pnpm dev
```

## 📝 Adding a New Package

1. Create a new directory in `packages/`
2. Follow the structure of existing packages
3. Update the root `README.md`
4. Add package-specific documentation

## 🚢 Publishing

### Automatic Publishing

This monorepo uses GitHub Actions for automatic publishing to npm. Publishing happens in these scenarios:

#### 1. Push to main branch

Only the packages changed in the push are published when code is merged to main (after CI passes). The publish job detects which `packages/<name>` directories were touched via `git diff` against the previous commit and runs `npm publish` only for those. Remember to bump the `version` in the changed package's `package.json` before merging, otherwise npm will skip it as already published.

#### 2. Manual workflow dispatch

You can manually trigger publishing for a specific package:

- Go to GitHub Actions
- Select "Publish Packages" workflow
- Click "Run workflow"
- Specify package name (e.g., `@arvoretech/aws-secrets-manager-mcp`)
- Choose version bump type (`major`, `minor`, or `patch`)

### Setup Requirements

To enable automatic publishing, add these secrets to your GitHub repository:

1. **NPM_TOKEN**: Required for publishing to npm
   - Create a token at https://www.npmjs.com/settings/tokens
   - Select "Automation" token type
   - Add as repository secret in GitHub Settings > Secrets and variables > Actions

2. **CODECOV_TOKEN** (optional): For coverage reports
   - Get from https://codecov.io
   - Add as repository secret

### Manual Publishing

If needed, you can publish manually (requires authentication):

```bash
# Publish all packages
pnpm -r publish

# Publish specific package
cd packages/aws-secrets-manager
npm publish
```

### Version Management

To bump versions:

```bash
# In a specific package directory
cd packages/aws-secrets-manager
pnpm version patch  # or minor, major
```

## 🤝 Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

## 📄 License

MIT License - see the [LICENSE](LICENSE) file for details.

## 🔗 Links

- [Model Context Protocol Documentation](https://modelcontextprotocol.io)
- [Anthropic Claude](https://www.anthropic.com/claude)
- [Arvore Education](https://www.arvore.com)

## 📞 Support

For issues and questions, please open an issue on GitHub.

---

Made with ❤️ by [Arvore Education](https://www.arvore.com)
