# Power Assist MCP Server
English | [简体中文](./README.md) | [繁體中文](./README_ZH-TW.md)
An MCP server for accessing Power Assist API.
## 🚀 Quick Start with EMCP Platform
**[EMCP](https://sit-emcp.kaleido.guru)** is a powerful MCP server management platform that allows you to quickly use various MCP servers without manual configuration!
### Quick Start:
1. 🌐 Visit **[EMCP Platform](https://sit-emcp.kaleido.guru)**
2. 📝 Register and login
3. 🎯 Go to **MCP Marketplace** to browse all available MCP servers
4. 🔍 Search or find this server (`bach-power_assist`)
5. 🎉 Click the **"Install MCP"** button
6. ✅ Done! You can now use it in your applications
### EMCP Platform Advantages:
- ✨ **Zero Configuration**: No need to manually edit config files
- 🎨 **Visual Management**: Easy-to-use GUI for managing all MCP servers
- 🔐 **Secure & Reliable**: Centralized API key and authentication management
- 🚀 **One-Click Install**: Rich selection of servers in MCP Marketplace
- 📊 **Usage Statistics**: Real-time service call monitoring
Visit **[EMCP Platform](https://sit-emcp.kaleido.guru)** now to start your MCP journey!
---
## Introduction
This is an MCP server for accessing the Power Assist API.
- **PyPI Package**: `bach-power_assist`
- **Version**: 1.0.0
- **Transport Protocol**: stdio
## 安装
### 从 PyPI 安装:
```bash
pip install bach-power_assist
```
### 从源码安装:
```bash
pip install -e .
```
## 运行
### 方式 1: 使用 uvx(推荐,无需安装)
```bash
# 运行(uvx 会自动安装并运行)
uvx --from bach-power_assist bach_power_assist
# 或指定版本
uvx --from bach-power_assist@latest bach_power_assist
```
### 方式 2: 直接运行(开发模式)
```bash
python server.py
```
### 方式 3: 安装后作为命令运行
```bash
# 安装
pip install bach-power_assist
# 运行(命令名使用下划线)
bach_power_assist
```
## Configuration
### API Authentication
This API requires authentication. Please set environment variable:
```bash
export API_KEY="your_api_key_here"
```
### Environment Variables
| Variable | Description | Required |
|----------|-------------|----------|
| `API_KEY` | API Key | Yes |
| `PORT` | N/A | No |
| `HOST` | N/A | No |
### Using with Cursor
Edit Cursor MCP config file `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"bach-power_assist": {
"command": "uvx",
"args": ["--from", "bach-power_assist", "bach_power_assist"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
```
### Using with Claude Desktop
Edit Claude Desktop config file `claude_desktop_config.json`:
```json
{
"mcpServers": {
"bach-power_assist": {
"command": "uvx",
"args": ["--from", "bach-power_assist", "bach_power_assist"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
```
## 可用工具
此服务器提供以下工具:
### `regex`
Validates that a String against a supplied RegEx pattern. Include the leading and trailing '/' in your RegEx pattern and optionally append flags.
**端点**: `POST /api/validate/regex`
---
### `median`
Calculates the median from an Array of numbers. Strings that can be converted to numbers are allowed, but formatting such as commas are NOT supported.
**端点**: `POST /api/math/median`
---
### `countinstances`
Get the number of occurrences of a substring within a string.
**端点**: `POST /api/string/countInstances`
---
### `regexreplace`
Find and replace within a String using a RegEx pattern. Include the leading and trailing '/' in your pattern and optionally append flags. If the /g flag is used, it will replace all occurrences. Use the /i flag to make the search ignore case.
**端点**: `POST /api/string/regexReplace`
---
### `every`
This action returns True if all of the items in an array match a specified condition; otherwise, it returns False.
**端点**: `POST /api/array/every`
---
### `words`
Split string by delimiter (String or RegEx pattern). The action splits by whitespace by default. If using RegEx, include the leading and trailing '/' in your pattern and optionally append flags.
**端点**: `POST /api/string/words`
---
### `isarray`
Validate whether a supplied Value is an Array.
**端点**: `POST /api/types/isArray`
---
### `reverse`
Reverse the order of an Array of any data type and returns it.
**端点**: `POST /api/array/reverse`
---
### `findfirst`
Accepts an array of any data type, including objects. Returns the first item that matches the specified condition. If no item matches the condition, Null is returned. Use the 'this' keyword for the propertyName when the array is of a simple data type, such as string, integer, or boolean.
**端点**: `POST /api/array/findFirst`
---
### `slugify`
Transform text into an ASCII slug which can be used in safely in URLs. Replaces whitespaces, accentuated, and special characters with a dash. Many non-ASCII characters are transformed to similar versions in the ASCII character set.
**端点**: `POST /api/string/slugify`
---
### `trimend`
Trim whitespace (by default) or specified characters from the end of a string.
**端点**: `POST /api/string/trimEnd`
---
### `replaceall`
In a string, find and replace all instances of a substring. This action is case sensitive. Does not accept RegEx. To use RegEx and control case sensitivity, see the \
**端点**: `POST /api/string/replaceAll`
---
### `trimstart`
Trim whitespace (the default) or specified characters only at the start of a string.
**端点**: `POST /api/string/trimStart`
---
### `trim`
Trims leading and trailing whitespace (the default) or specified characters from a string.
**端点**: `POST /api/string/trim`
---
### `escapehtml`
Convert HTML special characters, like \u003c and \u003e, to their entity equivalents (for example \u0026lt; and \u0026gt;). This action supports cent, yen, euro, pound, lt, gt, copy, reg, quote, amp, and apos.
**端点**: `POST /api/string/escapeHtml`
---
### `wordcount`
Count the words in a String by a delimiter (String or RegEx pattern). The delimiter is whitespace by default. If using RegEx, include the leading and trailing '/' in your pattern and optionally append flags.
**端点**: `POST /api/string/wordCount`
---
### `prepend`
Given an Array and a Value, this action adds the Value as the first item in the Array and returns the resulting Array. If an Array is supplied as the Value, a flat array will be returned with each of the items prepended.
**端点**: `POST /api/array/prepend`
---
### `groupby`
Group an Array of items. Accepts an Array of any data type. Returns a \
**端点**: `POST /api/array/groupBy`
---
### `filter`
Filter an Array of any data type (except nested Arrays) based on a specified condition. If the array consists of a simple data type such as String, Integer, or Boolean, use the 'this' keyword in the propertyName parameter. If the array consists of Objects, specify the property to compare against in the propertyName parameter.
**端点**: `POST /api/array/filter`
---
### `sort`
Perform a simple sort on an Array of any data type and returns it. If an empty Array is provided, it will be returned.
**端点**: `POST /api/array/sort`
---
### `floor`
Rounds a number down to the nearest integer. Supports numbers passed in as strings, but does NOT support commas or other formatting in number strings. If an integer is passed in, it will be returned unchanged.
**端点**: `POST /api/math/floor`
---
### `ceil`
Rounds a number up to the nearest integer. Supports numbers passed in as strings, but does NOT support commas or other formatting in number strings. If an integer is passed in, it will be returned unchanged.
**端点**: `POST /api/math/ceil`
---
### `random`
Generates a pseudo-random number between the minimum of 0 and the specified maximum (maximum must be 1, 10, 100, 1000, 10000).
**端点**: `POST /api/math/random`
---
### `average`
Calculates the average (mean) from an Array of numbers. Strings that can be converted to numbers are allowed, but formatting such as commas are NOT supported.
**端点**: `POST /api/math/average`
---
### `mode`
Calculates the mode (the number that occurs most often) from an Array of numbers. Strings that can be converted to numbers are allowed, but formatting such as commas are NOT supported. If multiple instances of the same number are passed in separately, one as a string and one as a number, they will be counted as instances of the same number. If no numbers occur more than once, the last number in the array will be returned.
**端点**: `POST /api/math/mode`
---
### `round`
Rounds a number to the nearest integer. If an integer is passed in, it will be returned unchanged. Supports numbers passed in as strings, but does NOT support commas or other formatting in number strings.
**端点**: `POST /api/math/round`
---
### `objecttoarray`
Accepts an Object and returns an Array based on the Object's keys, allowing looping on the Object. If Null or an empty object is passed in, an empty Array will be returned.
**端点**: `POST /api/array/objectToArray`
---
### `clean_whitespace`
Trim and replace multiple spaces with a single space. (This includes whitespace characters like \ and \ .) For cleaning special characters out of a string for a URL, use Slugify.
**端点**: `POST /api/string/clean`
---
### `cleandiacritics`
Replace all diacritic characters (letters with glyphs) in a string with the closest ASCII equivalents.
**端点**: `POST /api/string/cleanDiacritics`
---
### `striphtml`
Remove all HTML and XML tags from a string.
**端点**: `POST /api/string/stripHtml`
---
### `unescapehtml`
Convert entity characters (for example, \u0026lt;) to HTML equivalents (for example, \u003c). This action supports cent, yen, euro, pound, lt, gt, copy, reg, quote, amp, apos, and nbsp.
**端点**: `POST /api/string/unescapeHtml`
---
### `capitalize`
Sets the first character of the string to upper case, and all subsequent characters to lower case.
**端点**: `POST /api/string/capitalize`
---
### `chop`
Chop the string into an Array based on an interval, which defines the size of the pieces.
**端点**: `POST /api/string/chop`
---
### `isnullorempty`
Check if value is null or empty. Can be used for Strings, Arrays, or Objects.
**端点**: `POST /api/types/isNullOrEmpty`
---
### `sortbyproperty`
Accepts an Array of Objects and sorts it by the object Property specified. If any objects lack the specified property, it will still perform the sort. Optionally accepts the parameter 'descending'. If left out, it will default to ascending. If an empty Array is provided, it will be returned.
**端点**: `POST /api/array/sortByProperty`
---
### `isstring`
Validates whether a supplied value is of type String.
**端点**: `POST /api/types/isString`
---
### `isobject`
Validate whether a supplied Value is an Object. Empty Objects will evaluate to True. Arrays and other data types will evaluate to False.
**端点**: `POST /api/types/isObject`
---
### `isnumber`
Validates that a value is a Number. Numbers inside strings, such as \
**端点**: `POST /api/types/isNumber`
---
### `removefirst`
Accepts an Array of any data type. Returns an Array with the first Item that matches the specified condition removed. If no Item matches the condition, the entire Array is returned.
**端点**: `POST /api/array/removeFirst`
---
### `any`
This action returns True if any of the items in an array match a specified condition; otherwise, it returns False. If the array consists of a simple data type such as String, Integer, or Boolean, use the 'this' keyword in the propertyName parameter. If the array consists of Objects, specify the property to compare against in the propertyName parameter.
**端点**: `POST /api/array/any`
---
### `email`
Validates that a String matches the common email format. Does NOT send an email. Returns True if the validation passes; otherwise, False.
**端点**: `POST /api/validate/email`
---
## Tech Stack
- **Transport Protocol**: stdio
- **HTTP Client**: httpx
## License
MIT License - See [LICENSE](./LICENSE) file for details.
## Development
This server is generated by [API-to-MCP](https://github.com/BACH-AI-Tools/api-to-mcp) tool.
Version: 1.0.0