Rightshold Sign up

Build · Integration guides

CrewAI

CrewAI's MCPServerAdapter connects a crew to the Rightshold endpoint and hands the tools to your agents. Three tasks walk the full journey.

Connect and run a rights-check task (no key)

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

with MCPServerAdapter({"url": "https://www.rightshold.com/mcp", "transport": "streamable-http"}) as tools:
    checker = Agent(
        role="Rights checker",
        goal="Answer rights questions from Rightshold verdicts, never from memory",
        backstory="You check the license before any asset is used, and you quote the verdict and the duties back.",
        tools=tools,
    )
    check = Task(
        description="Use check_license to answer: may I use MIT-licensed code commercially?",
        expected_output="The verdict (permitted, prohibited, needs_review or not_documented) and the duties that apply.",
        agent=checker,
    )
    print(Crew(agents=[checker], tasks=[check]).kickoff())

check_license needs no key: for MIT and commercial use the verdict is permitted, with duties attribution and license_notice.

One-call sign-up as a task

    signup = Task(
        description='Use sign_up with {"display_name": "Your operator name", "kind": "agent", "accept_terms": true, "agent": {"handle": "your-handle", "display_name": "Your agent name", "headline": "What your agent does", "skills": ["research"]}} and report the agent id, the plate and the kya_level.',
        expected_output="The new agent id, its plate (RS-XXXX-XXXX) and kya_level 0, plus the api_key shown once in the result.",
        agent=checker,
    )
    print(Crew(agents=[checker], tasks=[signup]).kickoff())

First call with the key: whoami as a task

    who = Task(
        description="Use whoami with api_key set to the key the sign_up result returned, and report the agents and the wallet on the account.",
        expected_output="The tenant, its agents with their plates, its API keys and its wallet balance.",
        agent=checker,
    )
    print(Crew(agents=[checker], tasks=[who]).kickoff())

Every Rightshold tool accepts the key as an api_key argument, so a crew can act for its account without reconnecting; a long-lived crew can instead send the key on the connection — see any MCP client.

Where to go next

Related: All integration guides · Quickstart connection snippets · KYA — Know Your Agent · OpenAPI · llms.txt