npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ax-llm/ax-tools

v21.0.0

Published

Ax tools package

Readme

@ax-llm/ax-tools

Node.js-specific tools for the Ax LLM framework.

Overview

This package provides Node.js-specific functionality that cannot be included in the main @ax-llm/ax package due to browser compatibility requirements. The main package is designed to work in both Node.js and browser environments, while this package provides Node.js-only features.

Features

MCP Tools

AxMCPStdioTransport

A transport for the Model Context Protocol (MCP) that communicates with MCP servers via stdin/stdout. This enables running local MCP servers as child processes.

Function Tools

AxJSRuntime has moved to @ax-llm/ax.

Installation

npm install @ax-llm/ax-tools

Usage

Basic MCP Stdio Transport

import { AxMCPClient } from "@ax-llm/ax";
import { AxMCPStdioTransport } from "@ax-llm/ax-tools";

// Create a stdio transport for an MCP server
const transport = new AxMCPStdioTransport({
  command: "npx",
  args: ["-y", "@modelcontextprotocol/server-memory"],
  env: process.env,
});

// Create MCP client
const client = new AxMCPClient(transport, { debug: true });
await client.init();

// Use the client as a function provider
const functions = client.toFunction();
console.log(`Available functions: ${functions.map((f) => f.name).join(", ")}`);

With Factory Function

import { axCreateMCPStdioTransport } from "@ax-llm/ax-tools";

const transport = axCreateMCPStdioTransport({
  command: "uvx",
  args: ["blender-mcp"],
});

JavaScript Code Execution

Use AxJSRuntime from @ax-llm/ax:

import { AxJSRuntime, AxJSRuntimePermission } from "@ax-llm/ax";

Configuration Options

MCP Transport

interface StdioTransportConfig {
  command: string; // The command to execute
  args?: string[]; // Optional arguments
  env?: NodeJS.ProcessEnv; // Optional environment variables
}

JS Interpreter Permissions

See @ax-llm/ax docs for AxJSRuntimePermission.

Examples

Memory Server

import { AxAgent, AxAI, AxMCPClient } from "@ax-llm/ax";
import { AxMCPStdioTransport } from "@ax-llm/ax-tools";

// Initialize MCP client with memory server
const transport = new AxMCPStdioTransport({
  command: "npx",
  args: ["-y", "@modelcontextprotocol/server-memory"],
});

const client = new AxMCPClient(transport, { debug: false });
await client.init();

// Create agent with memory capabilities
const agent = new AxAgent({
  name: "MemoryAgent",
  description: "An agent that can remember information",
  signature: "userMessage -> response",
  functions: [client],
});

// Use with AI
const ai = new AxAI({
  name: "openai",
  apiKey: process.env.OPENAI_APIKEY!,
});

const result = await agent.forward(ai, {
  userMessage: "Remember that my favorite color is blue",
});

Cleanup

Always clean up the transport when done:

// Terminate the child process
await transport.terminate();

API Reference

AxMCPStdioTransport

Constructor

new AxMCPStdioTransport(config: StdioTransportConfig)

Methods

  • send(message: AxMCPJSONRPCRequest): Promise<AxMCPJSONRPCResponse> - Send a request
  • sendNotification(message: AxMCPJSONRPCNotification): Promise<void> - Send a notification
  • connect(): Promise<void> - Connect (no-op for stdio)
  • terminate(): Promise<void> - Terminate the child process

axCreateMCPStdioTransport

Factory function to create a new transport instance:

axCreateMCPStdioTransport(config: StdioTransportConfig): AxMCPStdioTransport

License

Apache-2.0