1. Conduid
  2. Developer Tools
  3. Atac
MCP server · Developer Tools

Atac

Recording and Replay AI Agent Trajectory.

Unclaimed MIT last commit 6 months ago agent-inframcpdevtoolsskillsagents
77Good

Scored 3 hours ago · breakdown

About Atac

Atac is an MCP server published by ATaC-team in the Developer Tools category: recording and Replay AI Agent Trajectory. It has been installed 0 times through Conduid.

The repository has 129 stars and 6 forks, with the last commit 6 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx atac

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Atac

Powered by Claude · Grounded in docs

I know everything about Atac. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v1.0.3Release v1.0.3 · 19 Mar 2026中文 新特性 Graph CLI Catalog Commands**: 为 `atac graph` 新增 `list`、`get` 和 `run` 子命令,支持直接从 `ATAC_DIR` 列出可用 graph、读取 graph 元信息,以及按 graph 名称运行已保存流程。 变更 Graph Execution UX**: `atac graph run` 现在同时支持 `<module>:<factory>` 和已保存的 graph 名称;当提供…
v1.0.2Release v1.0.2 · 10 Mar 2026中文 新特性 Async Bootstrap Support**: 新增异步 bootstrap 加载链,`ATAC_BOOTSTRAP` 现在可以返回异步创建的 `AtacService`,便于在运行时自然接入异步 MCP client 和其他异步初始化逻辑。 Bulk LangGraph Registration**: `AtacService` 新增 `register_langgraph_tools(...)`,支持批量注册原生 LangGraph /…
1.0.1Release v1.0.1 · 9 Mar 2026中文 新特性 ATaC MCP Graph Catalog**: `atac mcp` 现在要求通过 `ATAC_DIR` 指定 graph 存储目录,并新增 `save_graph`、`list_graph`、`get_graph` 三个工具,支持 graph 资产的保存、发现和读取。 Graph Metadata Contract**: `save_graph` 现在要求同时提供 `inputs`、`outputs` 和 `example_state`,让 graph…
v1.0.0Release v1.0.0 · 6 Mar 2026中文 新特性 Graph-First Core**: 发布全新的 ATaC 1.0.0 核心,围绕 LangGraph 工作流编排与工具资产复用设计。 统一工具注册**: 新增 `AtacService`,统一承接 Agent 内置工具与 MCP 工具注册,并支持在 graph 节点中通过 `tool_call(...)` 按名字调用。 Python SDK**: 提供 graph 执行与工具调用 SDK,支持 Agent 直接在图代码中复用已注册资产。 最小运行面**:…
v0.4.7Release v0.4.7 · 4 Mar 2026中文 新特性 ATaC Memory MCP**: 新增 `memory_run_command(memory_name, command, args)` 工具,可在指定 memory bundle 目录内执行相对路径命令。 ATaC Memory MCP**: `memory_run_command` 会自动切换到目标记忆目录作为工作目录,并阻止绝对路径或越界路径逃逸出 memory bundle。 English Features ATaC Memory MCP**:…

README

PyPI version Python versions CI Status

English | 中文

中文

ATaC是一个面向 Agent 工作流的工具运行时,帮助 Agent 通过编排图代码复用资产。

它主要提供三类能力:

  • 统一工具注册:把本地 Agent 工具和 MCP 工具纳入同一个运行时
  • Agent 自编排 graph:让 Agent 生成的 graph 代码可以直接复用这些已注册能力
  • 一键运行:加载并执行这些 graph 工作流

把工具注册到 ATaC,让 Agent 用代码把这些工具组织成流程,并逐步沉淀为可复用、可维护的 graph 工作流。

🤖 最小接入示例

1. 注册 Agent 内置工具和 MCP 工具

import asyncio
import inspect
import sys
from pathlib import Path

from atac import AtacService
import atac.subprocess as subprocess
from langchain_core.tools import tool
from langchain_mcp_adapters.client import MultiServerMCPClient

service = AtacService()


@tool
def bash(command: str) -> str:
    """在当前运行目录里执行 shell 命令。"""
    completed = subprocess.run(
        command,
        shell=True,
        capture_output=True,
        text=True,
    )
    if completed.returncode != 0:
        raise RuntimeError(completed.stderr.strip() or "bash failed")
    return completed.stdout.rstrip("\n")

service.register_langgraph_tools([bash])

client = MultiServerMCPClient(
    {
        "demo_mcp": {
            "transport": "stdio",
            "command": sys.executable,
            "args": [str(Path("simple_mcp_server.py").resolve())],
        }
    }
)

mcp_tools = client.get_tools()
if inspect.isawaitable(mcp_tools):
    try:
        asyncio.get_running_loop()
    except RuntimeError:
        mcp_tools = asyncio.run(mcp_tools)
    else:
        raise RuntimeError("在异步上下文里请先 await client.get_tools() 再注册")

mcp_tools = list(mcp_tools)
service.register_langgraph_tools(mcp_tools)


def get_service() -> AtacService:
    return service

推荐做法:

  • 本地工具直接使用原生 langchain_core.tools.tool
  • MCP 工具直接使用官方 langchain_mcp_adapters.client.MultiServerMCPClient
  • 统一通过 service.register_langgraph_tools(...) 注册到 AtacService

2. 在 graph 代码里调用 ATaC SDK

from langgraph.graph import START, END, StateGraph

from atac import get_service


def run_bash(state: dict) -> dict:
    output = get_service().tool_call("bash", {"command": f"echo {state['who']}"})
    return {"output": output}


def build_graph():
    graph = StateGraph(dict)
    graph.add_node("run_bash", run_bash)
    graph.add_edge(START, "run_bash")
    graph.add_edge("run_bash", END)
    return graph.compile()

🚀 快速开始

1. 安装

uv tool install atac

2. Python SDK

from myapp.bootstrap import get_service

service = get_service()
result = service.run_graph("myapp.graphs:build_graph", {"who": "mob"})

3. 示例


English

ATaC is a tool runtime for agent workflows.

It provides three core capabilities:

  • unified tool registration
  • agent-authored graph workflows that reuse registered tools
  • one-command graph execution

Register tools with ATaC, let agents organize them into workflows as code, and gradually turn repeated tasks into reusable, maintainable graph workflows.

🤖 Minimal Integration

1. Register Built-In and MCP Tools

import asyncio
import inspect
import sys
from pathlib import Path

from atac import AtacService
import atac.subprocess as subprocess
from langchain_core.tools import tool
from langchain_mcp_adapters.client import MultiServerMCPClient

service = AtacService()


@tool
def bash(command: str) -> str:
    """Run a shell command inside the current runtime workdir."""
    completed = subprocess.run(
        command,
        shell=True,
        capture_output=True,
        text=True,
    )
    if completed.returncode != 0:
        raise RuntimeError(completed.stderr.strip() or "bash failed")
    return completed.stdout.rstrip("\n")

service.register_langgraph_tools([bash])

client = MultiServerMCPClient(
    {
        "demo_mcp": {
            "transport": "stdio",
            "command": sys.executable,
            "args": [str(Path("simple_mcp_server.py").resolve())],
        }
    }
)

mcp_tools = client.get_tools()
if inspect.isawaitable(mcp_tools):
    try:
        asyncio.get_running_loop()
    except RuntimeError:
        mcp_tools = asyncio.run(mcp_tools)
    else:
        raise RuntimeError("Await client.get_tools() before registering in async code.")

mcp_tools = list(mcp_tools)
service.register_langgraph_tools(mcp_tools)


def get_service() -> AtacService:
    return service

Recommended path:

  • use the native langchain_core.tools.tool decorator for local tools
  • use the official langchain_mcp_adapters.client.MultiServerMCPClient for MCP tools
  • register everything through service.register_langgraph_tools(...)

2. Call the ATaC SDK from Graph Code

from langgraph.graph import START, END, StateGraph

from atac import get_service


def run_bash(state: dict) -> dict:
    output = get_service().tool_call("bash", {"command": f"echo {state['who']}"})
    return {"output": output}


def build_graph():
    graph = StateGraph(dict)
    graph.add_node("run_bash", run_bash)
    graph.add_edge(START, "run_bash")
    graph.add_edge("run_bash", END)
    return graph.compile()

🚀 Quick Start

1. Install

uv tool install atac

2. Run via Python SDK

from myapp.bootstrap import get_service

service = get_service()
result = service.run_graph("myapp.graphs:build_graph", {"who": "mob"})

3. Examples

README mirrored from the source repository 3 hours ago. The original is authoritative.

Questions

About Atac

How do I install Atac?

Run npx atac, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Atac safe to use with an AI agent?

Its trust score is 77 out of 100 (good). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Atac still maintained?

Yes — the latest release is v1.0.3 (19 Mar 2026), and the last commit was 6 months ago. The repository has 129 stars and 0 open issues.