Skip to main content

A Model Context Protocol (MCP) server for sending SMS via free Philippines APIs and managing local contacts.

Project description

MCP SMS Server (Philippines)

A Model Context Protocol (MCP) server that provides SMS capabilities (via a free API) and a local contacts management system.

Setup

  1. Prerequisites: Python 3.10+, uv

  2. Install Dependencies:

    uv sync
    # OR if managing manually:
    uv pip install mcp[cli] httpx pydantic pydantic-settings python-dotenv sqlmodel
    
  3. Configure Environment:

    Obtain your API key from https://sms-api-ph.netlify.app.

    Create a .env file in the root directory:

    SMS_API_KEY=your_actual_api_key_here
    SMS_API_BASE_URL=https://sms-api-ph-gceo.onrender.com
    DB_PATH=sqlite:///data/app.db
    LOG_LEVEL=INFO
    

Running the Server

1. Manual Testing (Script)

To verify the database and API logic without the full MCP server:

uv run test_manual.py

This will create a test contact and attempt a dry-run SMS send.

2. Run via CLI (MCP)

To start the standard IO server (mainly for debugging or piping):

uv run main.py

Note: This will appear to hang as it waits for JSON-RPC input.

3. Run with MCP Inspector (Web UI)

If you have npx installed:

npx @modelcontextprotocol/inspector uv run main.py

Integration with Claude Desktop

To use this server with Claude Desktop, add the following to your config file:

Windows Config Path: %APPDATA%\Claude\claude_desktop_config.json
(Usually C:\Users\YOUR_USER\AppData\Roaming\Claude\claude_desktop_config.json)

{
  "mcpServers": {
    "sms-ph": {
      "command": "uv",
      "args": [
        "run",
        "--with", "mcp[cli]",
        "--with", "httpx",
        "--with", "pydantic",
        "--with", "pydantic-settings",
        "--with", "python-dotenv",
        "--with", "sqlmodel",
        "d:/User/path-to-your-mcp/mcp-ph-sms/main.py"
      ],
      "cwd": "d:/User/path-to-your-mcp/mcp-ph-sms",
      "env": {
        "SMS_API_KEY": "your_key_here"
      }
    }
  }
}

Alternative (if project is already synced via uv sync):

{
  "mcpServers": {
    "sms-ph": {
      "command": "d:/User/path-to-your-mcp/mcp-ph-sms/.venv/Scripts/python.exe",
      "args": [
        "run",
        "d:/User/path-to-your-mcp/mcp-ph-sms/main.py"
      ],
      "cwd": "d:/User/path-to-your-mcp/mcp-ph-sms",
      "env": {
        "SMS_API_KEY": "your_key_here"
      }
    }
  }
}

Important:

  • Ensure uv is in your system PATH.
  • cwd ensures uv picks up the .env and pyproject.toml from the correct directory.
  • You can omit env in the JSON if you have the .env file correctly set up.

Available Tools

Contacts

  • contacts_list: List contacts with filtering options.
    • Arguments: limit (default: 50), tag (optional), q (search query).
  • contacts_get: Get a specific contact by ID.
    • Arguments: contact_id.
  • contacts_create: Create a new contact.
    • Arguments: name, phone, tags (optional list), notes (optional).
  • contacts_update: Update an existing contact.
    • Arguments: contact_id, and any of name, phone, tags, notes.
  • contacts_delete: Delete a contact by ID.
    • Arguments: contact_id.

SMS

  • sms_send: Send an SMS message.
    • Arguments: recipient (phone number or name), message, dry_run (boolean, default: False).
    • Note: Throttled to 1 message per 10 seconds.
  • sms_history: View SMS sending history.
    • Arguments: limit (default: 20), contact_id (optional filter).

Prompts

  • compose_sms: Helper prompt to draft an SMS based on a topic.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_ph_sms-1.0.tar.gz (56.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_ph_sms-1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file mcp_ph_sms-1.0.tar.gz.

File metadata

  • Download URL: mcp_ph_sms-1.0.tar.gz
  • Upload date:
  • Size: 56.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_ph_sms-1.0.tar.gz
Algorithm Hash digest
SHA256 f32829dfb3700581e0c21ad57cc2985fb7688ae7a5906c10078361da63103ae8
MD5 076f6aa90dfe2d47abed993f6ed3e341
BLAKE2b-256 cc43c2acdb4094f468e55641f16ff4eddc6c079510e41eb6ce6f642f2688ce30

See more details on using hashes here.

File details

Details for the file mcp_ph_sms-1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_ph_sms-1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_ph_sms-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7351e3b6f285c2f934746b99e72029872bc968cfd7f2bd4093c9e7e89f242062
MD5 1375a658c2b0d192b6f7d08a19d2dba0
BLAKE2b-256 3cd15290444ca7cbce4598b841b5e8d726147e2608dec1cb40463450f89d2463

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page