Conduct AI

io.github.sseshachalaPublished by GitHub account sseshachalav0.6.10Updated Oct 24, 2026

List agents, trigger workflows, and enforce team AI policies with ConductGuard.

Overview

AI-generated overview

Conduct AI's local MCP server lets an assistant list and trigger AI agents and check team AI policy rules before acting.

What you can do
  • List agents, projects and playbooks, and trigger test runs on installed agents
  • Check whether a specific tool call and input would be blocked by team policy before acting
  • Fetch the latest ConductGuard policy from the API and save it locally
  • Report team name, user email, active rule count and policy version
  • Enforce policies through a PreToolUse hook that blocks, warns or audits tool calls and posts audit events
When to use it
Useful for teams running Conduct AI agents who want an assistant to browse, install and test those agents, and for organizations using ConductGuard to have Claude Code, Cursor or Copilot self-check actions against centrally managed AI usage policies.
Requirements
Runs locally as a Python package (Python 3.9-3.12) installed with pip; the MCP entry is registered by running conduct guard sync or added manually. Needs a Conduct AI account, a server URL, a workspace or team ID and an agent or member token, either passed as arguments or saved by conduct login to the local config file. Network access to the Conduct AI API.
Before you install
Requires an agent or member token (cond_agt_ prefix) that is shown only once; it is stored in local config and passed as a command-line argument. The sync command writes a hook script and modifies AI tool settings files, and the hook sends every tool-call event to the Conduct AI API. Commands can create and delete projects and their agents, and test triggers run real agent workflows. In advisory mode violations are only logged, not blocked.

Installation

In SourceWeft

  1. Open Conduct AI in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

conduct-cli

Official CLI for Conduct AI — install AI agents, manage projects, run end-to-end tests, and enforce team AI policies with ConductGuard.

Runs on Linux, macOS, and Windows. Python 3.9–3.12.

[Conduct CLI demo — whoami, switch workspaces with Guard policy sync, and run an agent]

Install

bash
pip install conduct-cli

Quick start

bash
# Authenticate (one-time)conduct login \  --server https://api.conductai.ai \  --token cond_agt_xxx \  --workspace <workspace-id>
# Browse available agentsconduct playbooks
# Create a project and install all agents in one shotconduct install-all --project DevOps --repo owner/repo
# List installed agentsconduct agents
# Run a test trigger on any agentconduct test "PR Reviewer"conduct test --all

Commands

CommandDescription
conduct loginSave connection config to ~/.conduct/config.json
conduct projectsList all projects
conduct create project <name>Create a project
conduct delete project <name>Delete a project and all its agents
conduct reset project <name>Delete all agents in a project (clean slate)
conduct playbooksBrowse available playbooks
conduct playbooks <slug>Show required inputs for a playbook
conduct install <slug>Install one agent from a playbook
conduct install-allInstall all 12 playbooks into a project
conduct agentsList all installed agents
conduct test <name>Fire test trigger on an agent and stream results
conduct test --allTest every playbook-based agent

Authentication

Generate an agent token from Settings → Agents → Issue token in the Conduct AI dashboard. Tokens start with cond_agt_ and are stored as SHA-256 hashes — the plaintext is shown only once.

bash
conduct login --server https://api.conductai.ai --token cond_agt_xxx --workspace <id>

Install all agents

bash
# Installs all 12 playbooks into a project, pointed at your GitHub repoconduct install-all --project DevOps --repo myorg/myrepo

If the project doesn't exist it's created automatically. Use --input key=value to override any playbook input.

Test agents

bash
# Test a single agent (fires synthetic test payload, streams run events)conduct test "Autopilot Quick"
# Test all playbook-based agents in sequenceconduct test --all

Exit code is 0 if all pass, 1 if any fail — works in CI.


ConductGuard

ConductGuard is AI tool fleet management — your security team sets policies once and they're enforced automatically across every developer's Claude Code, Cursor, and Windsurf session.

How it works

Admin configures policies and budgets in the Guard dashboard    └─ developers are workspace members automatically — no invite step needed
Developer runs: conduct guard sync    ├─ pulls latest policy to ~/.conductguard/policy.json    ├─ writes PreToolUse hook → ~/.conductguard/hook.py    ├─ registers hook → ~/.claude/settings.json    └─ registers conductguard-mcp → ~/.claude/settings.json (mcpServers) + Codex
Every Claude Code tool call:    ├─ PreToolUse hook fires (hook.py) → checks policy → block / warn / audit    └─ Event posted async to ConductGuard API → visible in Activity feed

Developer setup

bash
pip install conduct-cli
# Authenticate (already done if you use Conduct)conduct login --server https://api.conductai.ai --api-key <api-key>
# Sync Guard — installs hook + MCP, pulls policiesconduct guard sync

That's it. Policy enforcement is active from the next tool call.

Guard commands

CommandDescription
conduct guard syncPull latest policy, write hook to ~/.conductguard/hook.py, register hook + MCP
conduct guard statusShow today's spend, session count, and violations
conduct guard audit [--since 7d]Print recent guard events in a table
conduct verify [--evidence FILE] [--strict] [--format json]Map guard events to OWASP Agentic Top 10; exit 1 in CI if blocked events (--strict)
conduct guard discoverScan local environment for AI agents; report Guard coverage %
conduct guard discover --registerRegister discovered agents under Guard

Advisory mode

When advisory mode is enabled by your security admin, all policy violations are logged as "audited" instead of blocked — the developer sees a note but the tool call proceeds. The hook still posts every event to the audit log.

To check if advisory mode is active:

bash
conduct guard sync   # shows "· advisory" badge if activeconduct guard status

conduct verify

bash
# Map last 24h of guard events to OWASP Agentic Top 10conduct verify
# Use a saved evidence fileconduct verify --evidence ./conduct-evidence.json
# CI mode — exit 1 if any blocked eventsconduct verify --strict
# JSON output for downstream toolingconduct verify --format json

OWASP mapping: no-rm-rf → A04 Excessive Agency, no-sudo → A09 Privilege Escalation, policy_signature_invalid → A07 Insufficient Monitoring, etc. All 10 categories covered.

How the PreToolUse hook works

When you run conduct guard sync, the CLI writes a Python script to ~/.conductguard/hook.py and registers it as a PreToolUse hook in ~/.claude/settings.json:

json
{  "hooks": {    "PreToolUse": [      {        "matcher": ".*",        "hooks": [{ "type": "command", "command": "python3 ~/.conductguard/hook.py" }]      }    ]  }}

Before every tool call, Claude Code runs the hook. The hook:

  1. Reads tool_name and tool_input from stdin (JSON)
  2. Loads ~/.conductguard/policy.json (the team ruleset)
  3. Matches the call against each rule (match_tool, match_pattern, match_path_pattern)
  4. Takes the rule's action:
    • block — prints the policy message, exits with code 2 (Claude Code aborts the tool call)
    • warn — prints the message, exits 0 (tool call proceeds, developer is notified)
    • audit — posts an event silently, exits 0
  5. Posts an audit event to POST /guard/events asynchronously (fire-and-forget, never slows the tool call)

How conductguard-mcp works

conduct guard sync also registers an MCP server entry in ~/.claude/settings.json:

json
{  "mcpServers": {    "conductguard": {      "command": "conductguard-mcp",      "args": ["--team", "<team-id>", "--token", "<member-token>"]    }  }}

Claude Code starts conductguard-mcp as a subprocess on launch and keeps it running. It communicates via JSON-RPC 2.0 over stdin/stdout (MCP stdio transport).

The MCP server exposes three tools that Claude can call proactively:

ToolDescription
guard_statusReturns team name, your email, number of active rules, and policy version
guard_checkChecks whether a specific tool + input would be blocked before Claude acts
guard_syncFetches the latest policy from the ConductGuard API and saves it locally

guard_check example — Claude can self-check before a sensitive action:

guard_check(tool_name="bash", tool_input={"command": "rm -rf /tmp/build"})→ ALLOWED — no policy rule matches 'bash'.
guard_check(tool_name="bash", tool_input={"command": "curl http://internal-api/secrets"})→ BLOCKED — External network calls to internal endpoints are not permitted. [rule: no-internal-curl]

guard_sync example — after your security team pushes new rules:

guard_sync()→ Policy synced — 12 rule(s) active (version: 2026-05-31T14:22:00Z).

Policy file format

Policy is stored at ~/.conductguard/policy.json and synced from the server:

json
{  "team_id": "uuid",  "version": "2026-05-31T14:22:00Z",  "rules": [    {      "rule_id": "no-rm-rf",      "match_tool": "bash",      "match_pattern": "rm\\s+-rf",      "match_path_pattern": null,      "action": "block",      "message": "Recursive deletes are not permitted. Use trash or targeted rm."    },    {      "rule_id": "audit-prod-writes",      "match_tool": "edit,write",      "match_path_pattern": "/prod/",      "match_pattern": null,      "action": "warn",      "message": "Writing to prod directory — make sure this is intentional."    }  ]}

Keeping policy up to date

Run conduct guard sync after your security team updates rules in the ConductGuard dashboard. The sync command pulls the latest policy, rewrites the hook, and re-registers the MCP entry in any newly detected AI tool configs.

bash
# Add to a daily cron or run manually after policy changesconduct guard sync

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "conduct": {      "command": "conduct-mcp",      "args": []    },    "conductguard": {      "command": "conductguard-mcp",      "args": ["--team", "<workspace-id>", "--token", "<member-token>"]    }  }}

Run conduct login first — conduct-mcp reads credentials from ~/.conduct/config.json. Get your agent token from Settings → Agents → Issue token in the Conduct AI dashboard.


VS Code + GitHub Copilot

Install from the MCP registry directly in VS Code:

bash
code --add-mcp '{"name":"conduct","command":"conduct-mcp","args":[]}'code --add-mcp '{"name":"conductguard","command":"conductguard-mcp","args":["--team","<workspace-id>","--token","<member-token>"]}'

Or add to .vscode/mcp.json in your repo:

json
{  "servers": {    "conduct": {      "type": "stdio",      "command": "conduct-mcp",      "args": []    },    "conductguard": {      "type": "stdio",      "command": "conductguard-mcp",      "args": ["--team", "<workspace-id>", "--token", "<member-token>"]    }  }}

Once wired, GitHub Copilot can list your agents, trigger workflows, and check Guard policies — the same tools available in Claude Code and Cursor.

Prerequisites: pip install conduct-cli + conduct login


Links

Source: README.md at commit dfa8d1d

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.6.10LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.