Skip to main content

BAUER GROUP MCP framework — config-driven, pluggable REST-API MCP servers on FastMCP

Project description

BAUER GROUP - BG-MCPCore

PyPI Version Python Support License: MIT 🧪 Tests

BAUER GROUP MCP framework — config-driven, pluggable REST-API MCP servers on FastMCP.

bg-mcpcore is the shared foundation for BAUER GROUP's fleet of Model Context Protocol servers that bridge REST APIs (Zammad, Shlink, and more). It turns "stand up a secure, OAuth-gated MCP server for an API" from a multi-day clone-and-edit job into a short declarative profile.

Repository Information:

  • Version: 0.0.0 (2026-06-01)
  • Repository: bauer-group/LIB-BG-MCPCore
  • Branch: main
  • Architecture: Config-driven, pluggable, secure-by-default

The idea: config for the standard, code for the complex

A server is described by a declarative JSON profile. Standard behaviour — identity, backend connection, inbound/outbound auth, rate limiting, observability, health/branding routes, and OpenAPI-derived tools — needs no Python. The genuinely complex parts (hand-written tools, per-user on-behalf-of token flows) drop down to Python escape hatches the profile points at.

// profiles/mautic.json — a whole server, no Python
{
  "id": "mautic",
  "display_name": "BAUER GROUP Mautic",
  "backend": { "base_url": "${env:MAUTIC_URL}", "api_base_path": "/api" },
  "auth": {
    "inbound":  { "mode": "oidc" },
    "outbound": { "type": "bearer_env", "value_from_env": "MAUTIC_TOKEN" }
  },
  "tools": { "source": "openapi", "spec": { "source": "${env:MAUTIC_OPENAPI_URL}" } }
}
# src/main.py — the entire entrypoint
from bg_mcpcore import load_profile, make_cli

app = make_cli(load_profile("profiles/mautic.json"))
if __name__ == "__main__":
    app()

Install

pip install bg-mcpcore                                          # lean core
pip install "bg-mcpcore[openapi]"                               # + OpenAPI tools
pip install "bg-mcpcore[openapi,redis,tasks,oauth-providers]"   # full Shlink-shaped server
Extra Adds
openapi tools.source: "openapi" — generate the tool surface from an OpenAPI spec
redis Redis-backed encrypted OAuth-state store (multi-replica deployments)
oauth-providers Entra / Google inbound IdP modes
tasks long-running task execution (bulk exports)
testkit reusable pytest fixtures + stubs (pytest11 plugin)

Architecture

  • Pluggable via Python entry points — new auth_providers, tool_sources, auth_resolvers are pip-installable plugins, never core edits.
  • Central tool registry — reusable tools (bg.health, …) referenced by name from any profile (tools.source: "registry").
  • Fail-closed by designAUTH_MODE=none forbidden in production; the JWT signing key mandatory for any active mode; invariants live in core.

See the documentation for the profile schema reference, plugin authoring guide, and security model.

License

MIT © BAUER GROUP

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

bg_mcpcore-1.0.0.tar.gz (68.1 kB view details)

Uploaded Source

Built Distribution

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

bg_mcpcore-1.0.0-py3-none-any.whl (70.2 kB view details)

Uploaded Python 3

File details

Details for the file bg_mcpcore-1.0.0.tar.gz.

File metadata

  • Download URL: bg_mcpcore-1.0.0.tar.gz
  • Upload date:
  • Size: 68.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bg_mcpcore-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f84d1c3aaeb142fab87eb228e17fab26bcbac4f62881b28cd4ec47f5477b653a
MD5 64c4a7bd65aa805f09275cfc482e8306
BLAKE2b-256 0c8fd943ef9b4a4f1101849bcd93f19456ffe6d94d4b20b5a9eb57f31bf201e3

See more details on using hashes here.

File details

Details for the file bg_mcpcore-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: bg_mcpcore-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 70.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bg_mcpcore-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 05350c19148e01b7fae4a59fdb05630b44f1a6e482dcea36f0efbfd7d74fb334
MD5 1604b8e87b995320963e58865ebc444c
BLAKE2b-256 c9bc4ecdd775fcca6b0938494272a7adfff2593e38504d68d86a40e4bde33e32

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