netx/netx_api/mcp_remote/topology/layout_ops
oliver 52679a7cfc MCP: serve tools from the API process over Streamable HTTP at /mcp
- netx_api/mcp_remote: ops / topology / bizMonitor tools, Bearer auth,
  per-tool RBAC filtering, ?groups= filter, readOnlyHint and group meta.
- Mount the official MCP Streamable HTTP app at /mcp (stateless);
  AuthAuditMiddleware is pure ASGI and skips /mcp.
- Let uvicorn chunk MCP responses; some Windows LSPs rewrite
  Content-Length replies on */mcp* paths into broken chunked framing.
- NETX_MCP_ALLOWED_HOSTS opts into DNS-rebinding checks (off by default
  so LAN and reverse-proxy hosts work; Bearer is the gate).
- Remove the three stdio Python MCP packages; tests moved to /mcp,
  including real-TCP framing regressions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 21:52:08 +08:00
..
__init__.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
align_reference.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
bundle_orbit.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
channel_metro.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
channels.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
clear_edge_hits.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
compact_bbox.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
compose_orbit.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
compose_views.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
densify_sweep.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
dual_mass.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
dual_units.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
fold_chain.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
force_densify.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
graph_util.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
hierarchy.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
hotspots.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
level_util.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
mass_field.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
mass_merge.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
min_rings.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
orbit_sweep.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
ortho_metro.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
partition.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
pin_beam.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
press_crossings.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
pull_far_chains.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
recipe.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
rigid_orbit.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
rigid_units.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
ring_faces.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
rings.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
scope.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
score.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
sides.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
sink_dual_units.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
skeleton.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
soft_petals.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
state.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
suggest_sink_hubs.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
sugiyama.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
transforms.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00
untangle.py MCP: serve tools from the API process over Streamable HTTP at /mcp 2026-10-16 21:52:08 +08:00