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

@alexma03/utcp-code-mode-mcp

v1.2.3

Published

Model Context Protocol (MCP) server for UTCP Code Mode - Execute TypeScript code with direct tool access

Downloads

179

Readme

@alexma03/utcp-code-mode-mcp

MCP server for UTCP Code Mode. It exposes MCP tools that let an MCP client discover UTCP tools, inspect their TypeScript interfaces, register manuals dynamically, and execute TypeScript code with direct tool access.

This project is a fork of universal-tool-calling-protocol: https://github.com/universal-tool-calling-protocol

Installation

You can run it directly with npx:

npx -y @alexma03/utcp-code-mode-mcp

You can also install it locally:

npm install @alexma03/utcp-code-mode-mcp

MCP Client Configuration

If you want to use the published package from an MCP client such as Windsurf, configure it like this:

{
  "alexma03-utcp-code-mode": {
    "command": "npx",
    "args": [
      "-y",
      "@alexma03/utcp-code-mode-mcp"
    ],
    "env": {
      "UTCP_CONFIG_FILE": "/Users/alex03/.utcp_config.json"
    }
  }
}

The UTCP_CONFIG_FILE environment variable should point to the UTCP configuration file that defines manuals, loaders, repositories, and search strategy.

Runtime Requirements

  • Node >=24.14.0 <25
  • On macOS arm64, Node 25+ is explicitly rejected
  • npx must be available in the environment where the MCP client runs

UTCP Configuration

The bridge loads UTCP configuration in this order:

  1. UTCP_CONFIG_FILE
  2. .utcp_config.json in the current working directory
  3. .utcp_config.json next to the installed package

Example .utcp_config.json:

{
  "load_variables_from": [
    {
      "variable_loader_type": "dotenv",
      "env_file_path": ".env"
    }
  ],
  "manual_call_templates": [
    {
      "name": "openlibrary",
      "call_template_type": "http",
      "http_method": "GET",
      "url": "https://openlibrary.org/static/openapi.json",
      "content_type": "application/json"
    }
  ],
  "post_processing": [
    {
      "tool_post_processor_type": "filter_dict",
      "only_include_keys": [
        "name",
        "description"
      ],
      "only_include_tools": [
        "openlibrary.*"
      ]
    }
  ],
  "tool_repository": {
    "tool_repository_type": "in_memory"
  },
  "tool_search_strategy": {
    "tool_search_strategy_type": "tag_and_description_word_match"
  }
}

Exposed MCP Tools

This MCP server exposes these tools:

  • register_manual
  • deregister_manual
  • search_tools
  • list_tools
  • get_required_keys_for_tool
  • tools_info
  • call_tool_chain

What call_tool_chain Does

call_tool_chain executes TypeScript code with direct access to registered tools as hierarchical functions.

Example shape:

return await some_manual.some_tool({
  query: "example"
});

You can combine multiple tool calls inside the same execution and return structured results.

Tool Naming

UTCP tools are mapped into TypeScript-friendly access paths. A tool with a UTCP name like:

my_manual.server.echo

is exposed in code-mode as a hierarchical TypeScript path derived from that name.

Notes

  • stdout is reserved for MCP stdio transport, so informational logs are redirected away from normal stdout behavior
  • The package initializes core UTCP plugins and imports HTTP, text, MCP, CLI, dotenv-loader, and file integrations
  • If the runtime is unsupported, the process exits with a clear error

Development

Build:

npm run build

Start from source build output:

npm start

Dry-run package contents:

npm pack --dry-run