Skip to main content

An MCP for the ASD-STE100 (Simplified Technical English) Issue 9 vocabulary.

Project description

biz.dfch.AsdSte100Mcp

ASD-STE100: Issue 9 License: AGPL v3 Python Pylint and unittest TestPyPI version PyPI version PyPI downloads MCP Auth: none

An MCP server for the ASD-STE100 (Simplified Technical English) Issue 9 vocabulary.

Tools

Tool Description
find Search for a term by exact name (case-insensitive) in the ASD-STE100 Issue 9 vocabulary. Return approved/rejected status, part of speech, STE examples, and approved alternatives. Use this first when you know the exact word. Use asdste100_match with a wildcard if this tool returns no items.
match Search the vocabulary using a regular expression pattern. Return all entries whose term matches. Return all entries whose term matches. Use it to find all words with a common prefix or pattern (e.g. ^de or .*tion$).
similar Search for a term with sequence-matching (Python difflib.get_close_matches). Results may not be obvious — use when find returns nothing and you want suggestions.
list Return all vocabulary entries. Only use when you need to process the full vocabulary. Use asdste100_count instead if you only need the total. This operation is expensive and return a large number of text.
count Return the total number of entries in the vocabulary. Use instead of asdste100_list when you only need the count.

Installation

pip install biz-dfch-asdste100mcp

Or with uv:

uv add biz-dfch-asdste100mcp

Usage

stdio (Claude Desktop, OpenCode, and other MCP hosts)

ste100-mcp

SSE / network

ste100-mcp --transport sse --host 127.0.0.1 --port 8000

Options

Option Env var Default Description
--transport STE100_MCP_TRANSPORT stdio Transport mode: stdio or sse
--host STE100_MCP_HOST 127.0.0.1 Bind address (SSE only)
--port STE100_MCP_PORT 8000 TCP port (SSE only)
--env auto-discovered Path to a .env file

Vocabulary configuration

Env var Default Description
STE100_MCP_FILES (empty) Colon-separated paths to additional vocabulary files
STE100_MCP_USE_STE100 true Load the built-in ASD-STE100 Issue 9 vocabulary
STE100_MCP_USE_STE100_TECHNICAL_WORDS false Also load the technical words vocabulary

OpenCode Configuration

Adding ASD-STE100 MCP Server to OpenCode

To add the ASD-STE100 (Simplified Technical English) MCP server to your OpenCode configuration:

  1. Open your OpenCode config file (typically ~/.config/opencode/opencode.json or ~/.config/opencode/opencode.jsonc)

  2. Add the following configuration to the mcp section (and use it via stdio):

"asdste100": {
  "type": "local",
  "enabled": true,
  "command": ["uvx", "--from", "biz-dfch-asdste100mcp", "ste100-mcp"]
}
  1. Save the file and restart OpenCode

This enables OpenCode to access ASD-STE100 vocabulary lookups for technical writing and documentation compliance.

Development

Install dev dependencies

uv sync --all-extras

Run linters

uv run --frozen ruff format --check
uv run --frozen ruff check
uv run --frozen pylint $(git ls-files '*.py')

Run tests

uv run --frozen python -m unittest discover -v -s tests -t . -p "test_*.py"

Make a Release

1. Make sure all tests pass

Before releasing, make sure the CI pipeline is green on the dev branch:

uv run --frozen ruff format --check
uv run --frozen ruff check
uv run --frozen pylint $(git ls-files '*.py')
uv run --frozen python -m unittest discover -v -s tests -t . -p "test_*.py"

2. Increase the version

Update the version in pyproject.toml:

version = "x.y.z"

3. Commit and push to dev

git add pyproject.toml CHANGELOG.md
git commit -m "chore: bump version to vx.y.z"
git push origin dev

4. Merge dev into main

git checkout main
git merge dev
git push origin main

5. Create and push a version tag

export VERSION=x.y.z
git tag v${VERSION}
git push origin v${VERSION}

Pushing the tag triggers the publish.yml workflow, which will:

  1. Build the sdist and wheel.
  2. Publish to TestPyPI (environment testpypi).
  3. Publish to PyPI (environment pypi), only if TestPyPI succeeded.
  4. Create a GitHub Release with auto-generated notes and the distribution artifacts attached.

Then switch back to dev to continue work:

git checkout dev

Configure Trusted Publishing

The workflow uses OIDC Trusted Publishing — no API tokens or secrets are needed.

GitHub: create environments

Go to your repo → SettingsEnvironments and create two environments:

Environment Recommended protection
testpypi None required
pypi Add a required reviewer to prevent accidental production releases

TestPyPI

Log in at test.pypi.orgYour accountPublishingAdd a new pending publisher:

Field Value
PyPI project name biz-dfch-asdste100mcp
Owner dfch
Repository biz.dfch.AsdSte100Mcp
Workflow name publish.yml
Environment testpypi

PyPI

Log in at pypi.orgYour accountPublishingAdd a new pending publisher:

Field Value
PyPI project name biz-dfch-asdste100mcp
Owner dfch
Repository biz.dfch.AsdSte100Mcp
Workflow name publish.yml
Environment pypi

License

AGPL-3.0-or-later

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

biz_dfch_asdste100mcp-0.1.3.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

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

biz_dfch_asdste100mcp-0.1.3-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

Details for the file biz_dfch_asdste100mcp-0.1.3.tar.gz.

File metadata

  • Download URL: biz_dfch_asdste100mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for biz_dfch_asdste100mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5fb3478da02680c8ae34851f459fc68827e57dc4c40e986df32b237edbcecca2
MD5 6c4c7a02a83471b746248f66c210434f
BLAKE2b-256 34f08e761693fd8945c7101702cfcd38df14a2e1b276426f0226135cdfce956f

See more details on using hashes here.

Provenance

The following attestation bundles were made for biz_dfch_asdste100mcp-0.1.3.tar.gz:

Publisher: publish.yml on dfch/biz.dfch.AsdSte100Mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file biz_dfch_asdste100mcp-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for biz_dfch_asdste100mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dd2a8daa4d4cacc895f2bc4141a1a22e130ceffd8f00600c409b32aa4b704786
MD5 f54d77c903ac23435c34f7110a6607b7
BLAKE2b-256 36b824e32ef640a227d661bde6a3ee0e1aa16d3d38fd88abdf12d4748cf717b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for biz_dfch_asdste100mcp-0.1.3-py3-none-any.whl:

Publisher: publish.yml on dfch/biz.dfch.AsdSte100Mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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