On this page
wesktop's MCP agent role registry (implementor, auditor, reviewer, deployer) plus role-aware create_mcp_server and register_tools_for_role over fastware.
#src.wesktop.mcp
#src.wesktop.mcp
wesktop's agent role registry plus the MCP server factory that wraps fastware: per-role tool provisioning for implementor, auditor, reviewer, and deployer agents.
fastware's MCP layer is role-agnostic -- its create_mcp_server and register_tools_for_role take a roles mapping explicitly. The implementor/auditor/reviewer/deployer domain model lives here: pass roles=wesktop.mcp.ROLES (and default_role=wesktop.mcp.DEFAULT_ROLE) when creating a server or registering tools.
#ROLES
Registry mapping each agent role name (implementor, auditor, reviewer, deployer) to its config dict -- a permission level and the allowlist of MCP tools that role may call. This is wesktop's application role model; fastware ships none.
#DEFAULT_ROLE
Name of the fallback role (auditor, the least-privileged read-only role) used when a requested role is unknown. Auditor is the safe default because it grants no write, review-posting, or deploy capabilities.
#create_mcp_server
def create_mcp_server(name: str='fastware-agent', *, role: str | None=None, tool_modules: list[ModuleType] | None=None, roles: dict[str, dict[str, Any]] | None=None, default_role: str | None=None) -> AnyCreate a FastMCP server with role-filtered tools, using wesktop's roles.
Thin wrapper over fastware's role-agnostic factory. wesktop owns the role model, so pass roles=ROLES (and optionally default_role=DEFAULT_ROLE) to provision an implementor/auditor/reviewer/deployer server; without a roles mapping fastware has no roles to filter tools by. Raises RuntimeError if the optional mcp package is not installed.
#register_tools_for_role
def register_tools_for_role(server: Any, role: str, tool_modules: list[ModuleType], *, roles: dict[str, dict[str, Any]], default_role: str | None=None) -> dict[str, Callable[..., Any]]Register only the tools allowed by role onto an existing server.
Thin wrapper over fastware's role-agnostic registrar. Each module in tool_modules must expose a TOOLS dict; only the tools listed for role in wesktop's ROLES registry are attached. Callers pass roles=ROLES (and optionally default_role=DEFAULT_ROLE). Returns the dict of registered tool name -> callable.