# AiVikings.ai domain workflow examples

Reviewed 7 October 2026. These examples do not make purchases or renewals.

## Install

Use Python 3.12 and the adjacent requirements.txt in an isolated virtual environment.

    python -m venv .venv
    .venv/bin/pip install -r requirements.txt

## Portfolio review

    .venv/bin/python portfolio_review.py --fixture portfolio-fixture.json

The fixture contains synthetic records. Without `--fixture`, the script reads the authenticated account using AIVIKINGS_TOKEN from the environment. Do not publish that token or customer output. The report preserves unknown dates and flags holdings within 60 days. It does not decide which names are worth renewing.

## LangChain discovery

    .venv/bin/python langchain_discovery.py

Uses langchain-mcp-adapters 0.1.14, MCP 1.27.2 and httpx 0.28.1. Discovers public tool schemas and selects four read-tool names. Does not call account tools or an LLM. This pinned adapter API is distinct from newer LangChain MCPAdapter interfaces.

## Verification scope

- Portfolio tests passed locally: missing expiry, expired holdings, future holdings, timezone offset and the 60-day boundary.
- Live LangChain discovery on 7 October 2026 returned 34 tools and selected check_domain_availability, get_domain_pricing, get_domain_status and list_domains.
- The server returned a 401 during unauthenticated session cleanup after successful discovery. The SDK logged the cleanup warning and the example exited successfully; this is not a paid-operation test.
- Public pricing was checked with the registered name aivikings.ai and returned domain_unavailable.
- No live registration, renewal, DNS mutation, customer-token read or model-driven purchase was performed for these examples.
- The CrewAI article documents a separate upstream connection pattern; it is not a certified or end-to-end tested CrewAI integration.

## Tests

    .venv/bin/python -m unittest discover -s . -p 'test_*.py' -v

These fixtures test application logic. They are not a registrar sandbox. Before adding writes, validate account context, contact, current quote and purchase authority; reconcile a lost response before retrying.
