Skip to main content
Attestix
Guides

CrewAI Integration

Attach Attestix to every CrewAI agent via MCPServerAdapter. Production-ready in v0.3.0. Crews become attestable by default.

CrewAI agents receive Attestix tools through the tools field, populated by the MCPServerAdapter. Every agent in the crew discovers all 47 Attestix tools, and role hand-offs are recorded as UCAN delegations.

Install

pip install attestix[crewai]

Minimal wiring

MCPServerAdapter is a context manager that yields the discovered tool list. Pass it into the agent's tools field.

from crewai import Agent, Crew, Task
from crewai_tools import MCPServerAdapter
from mcp import StdioServerParameters

server_params = StdioServerParameters(
    command="attestix",
    args=["mcp"],
)

with MCPServerAdapter(server_params) as attestix_tools:
    analyst = Agent(
        role="Financial analyst",
        goal="Analyse quarterly data",
        backstory="Senior quant with 10 years of regulatory reporting experience.",
        tools=attestix_tools,
    )

    task = Task(
        description="Produce the Q4 report",
        agent=analyst,
        expected_output="A signed compliance declaration.",
    )

    crew = Crew(agents=[analyst], tasks=[task])
    result = crew.kickoff()

Crew-wide compliance profile

Before the crew runs, issue a single compliance profile that every agent references:

from attestix.services.compliance_service import ComplianceService

profile = ComplianceService().create_compliance_profile(
    agent_id="attestix:crew-q4-report",
    risk_category="high",
    provider_name="VibeTensor",
    intended_purpose="Quarterly financial analysis for board review",
)

All audit entries from the crew link to this profile for traceability.

Role hand-offs as UCAN

When an agent hands a task to another agent, Attestix records a UCAN delegation with the attenuated capabilities. Useful for Article 14 (human oversight) evidence.

Sequential vs hierarchical crews

Both topologies work. For hierarchical crews with a manager agent, issue the compliance profile under the manager and let it flow down via delegation.

from crewai import Crew, Process

with MCPServerAdapter(server_params) as attestix_tools:
    manager = Agent(role="Manager", tools=attestix_tools, ...)
    analyst = Agent(role="Analyst", tools=attestix_tools, ...)
    reviewer = Agent(role="Reviewer", tools=attestix_tools, ...)

    crew = Crew(
        agents=[manager, analyst, reviewer],
        tasks=[report_task],
        process=Process.hierarchical,
        manager_agent=manager,
    )
    result = crew.kickoff()

Verify the crew output

Each task emits a VC on success. Bundle them for a regulator with a Verifiable Presentation:

from attestix.services.credential_service import CredentialService

vp = CredentialService().create_verifiable_presentation(
    holder_id="attestix:crew-q4-report",
    credentials=[credential_id],
    verifier="did:web:eu.regulator",
    challenge="ch_q4_2026",
)

Sample repository

See github.com/VibeTensor/attestix/tree/main/examples for a complete crew with three roles and a signed hand-off chain.