A previous release had provenance metadata, but this release does not. View details.
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
-
Prerequisites: Python 3.10+, uv
-
Install Dependencies:
uv sync # OR if managing manually: uv pip install mcp[cli] httpx pydantic pydantic-settings python-dotenv sqlmodel
-
Configure Environment:
Obtain your API key from https://sms-api-ph.netlify.app.
Create a
.envfile 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
uvis in your system PATH. cwdensuresuvpicks up the.envandpyproject.tomlfrom the correct directory.- You can omit
envin the JSON if you have the.envfile correctly set up.
Available Tools
Contacts
contacts_list: List contacts with filtering options.- Arguments:
limit(default: 50),tag(optional),q(search query).
- Arguments:
contacts_get: Get a specific contact by ID.- Arguments:
contact_id.
- Arguments:
contacts_create: Create a new contact.- Arguments:
name,phone,tags(optional list),notes(optional).
- Arguments:
contacts_update: Update an existing contact.- Arguments:
contact_id, and any ofname,phone,tags,notes.
- Arguments:
contacts_delete: Delete a contact by ID.- Arguments:
contact_id.
- Arguments:
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.
- Arguments:
sms_history: View SMS sending history.- Arguments:
limit(default: 20),contact_id(optional filter).
- Arguments:
Prompts
compose_sms: Helper prompt to draft an SMS based on a topic.
Metadata
Release files for mcp-ph-sms 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Loss of provenance
These files do not have provenance metadata, despite files in a prior release including this data.
We recommend further investigation before installing these files. View details.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mcp_ph_sms-1.0.tar.gz | 56.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_ph_sms-1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.2 kB
Release files / mcp_ph_sms-1.0.tar.gz
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | mcp_ph_sms-1.0.tar.gz |
|---|---|
| Size | 56.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f32829dfb3700581e0c21ad57cc2985fb7688ae7a5906c10078361da63103ae8
|
|
BLAKE2b-256 checksum How to use checksums |
cc43c2acdb4094f468e55641f16ff4eddc6c079510e41eb6ce6f642f2688ce30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / mcp_ph_sms-1.0-py3-none-any.whl
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | mcp_ph_sms-1.0-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7351e3b6f285c2f934746b99e72029872bc968cfd7f2bd4093c9e7e89f242062
|
|
BLAKE2b-256 checksum How to use checksums |
3cd15290444ca7cbce4598b841b5e8d726147e2608dec1cb40463450f89d2463
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for mcp-ph-sms 1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Loss of provenance
A previous release of these files had provenance metadata, but this release does not.
While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.
Release comparison
- Removed 0.1.3 2 files With provenance
- Added 1.0 2 files Without provenance
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.