imessage-kit-mcp

imessage-kit-mcp

Enables reading, sending, and managing iMessage conversations on macOS through MCP.

Category
Visit Server

README

iMessage Kit MCP Server

An MCP server for iMessage — read, send, and automate conversations via iMessage Kit.

Features

  • Send Messages: Send iMessages to phone numbers or email addresses
  • Read Messages: Retrieve message history from conversations
  • List Conversations: Get all active iMessage conversations
  • Conversation Details: Get detailed information about specific conversations
  • Dual Transport: Supports both STDIO (local) and HTTP (production) transports

Tools

imsg_send_message

Sends an iMessage to a recipient.

Inputs:

  • recipient (string, required): Phone number (e.g., '+1234567890') or email address
  • text (string, required): Message text to send
  • chatId (string, optional): Chat ID if continuing an existing conversation

imsg_read_messages

Reads messages from an iMessage conversation.

Inputs:

  • chatId (string, optional): Chat/conversation ID
  • recipient (string, optional): Recipient phone number or email
  • limit (number, optional): Maximum number of messages (default: 50)
  • offset (number, optional): Number of messages to skip (default: 0)

imsg_get_conversations

Gets a list of all iMessage conversations.

Inputs:

  • limit (number, optional): Maximum number of conversations (default: 50)
  • offset (number, optional): Number of conversations to skip (default: 0)

imsg_get_conversation_details

Gets detailed information about a specific conversation.

Inputs:

  • chatId (string, required): Chat/conversation ID

Installation

Prerequisites

  • Bun — required runtime
  • macOS (required for iMessage functionality)

Install Dependencies

bun install

Configuration

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

STDIO Transport (Local)

{
  "mcpServers": {
    "imessage-kit": {
      "command": "bun",
      "args": ["run", "/path/to/imessage-kit-mcp/src/index.ts"]
    }
  }
}

HTTP Transport

{
  "mcpServers": {
    "imessage-kit": {
      "command": "bun",
      "args": ["run", "/path/to/imessage-kit-mcp/src/index.ts", "--port", "3002"],
      "url": "http://localhost:3002/mcp"
    }
  }
}

Usage with VS Code

Add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P and typing Preferences: Open User Settings (JSON).

{
  "mcp": {
    "inputs": [],
    "servers": {
      "imessage-kit": {
        "command": "bun",
        "args": ["run", "/absolute/path/to/imessage-kit-mcp/src/index.ts"]
      }
    }
  }
}

Development

Running the Server

# STDIO transport (default)
bun run src/index.ts

# HTTP transport
bun run src/index.ts --port 3002

Testing with MCP Inspector

bunx @modelcontextprotocol/inspector src/index.ts

Project Structure

imessage-kit-mcp/
├── src/
│   ├── index.ts           # Main entry point
│   ├── server.ts          # MCP server implementation
│   ├── client.ts          # iMessage Kit SDK client wrapper
│   ├── config.ts          # Configuration management
│   ├── cli.ts             # CLI argument parsing
│   ├── types.ts           # TypeScript type definitions
│   ├── tools/
│   │   ├── index.ts       # Tool exports
│   │   └── imessage.ts    # iMessage tool definitions
│   └── transport/
│       ├── index.ts       # Transport exports
│       ├── stdio.ts       # STDIO transport
│       └── http.ts         # HTTP transport
├── package.json
├── tsconfig.json
└── README.md

Notes

  • This server requires macOS to access iMessage functionality
  • Requires Bun (uses bun:sqlite for native SQLite access)
  • Uses iMessage Kit for database access
  • Make sure you have proper permissions to access Messages on macOS

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured