+ TPMJS Specification +
++ The open standard for AI tool discovery and integration +
+What is TPMJS?
++ TPMJS (Tool Package Manager for JavaScript) is an open standard and registry for AI + tool discovery and integration. It solves the problem of fragmented AI tool + ecosystems by providing: +
+-
+
- + Automatic Discovery - Tools are + automatically indexed from NPM based on keywords + +
- + Standardized Metadata - A unified + specification for describing tool capabilities + +
- + Quality Scoring - Algorithmic + ranking based on documentation completeness and community adoption + +
- + AI Agent Integration - Structured + metadata optimized for LLM tool selection + +
How it Works
+
+ Add the tpmjs-tool keyword
+ and a tpmjs metadata field
+ to your package.json
+
+ TPMJS monitors NPM every 2 minutes for new tools and updates the registry + automatically +
++ Your tool appears on tpmjs.com within 15 minutes, searchable by AI agents and + developers +
+The Specification
+
+ The TPMJS specification defines a tpmjs field
+ in package.json with three tiers of metadata. Higher tiers receive better visibility
+ and quality scores.
+
+ category *
+
+ + Tool category for organization. Must be one of the following: +
+
+ description *
+
+ + Clear description of what the tool does. Must be 20-500 characters. This + appears in search results and tool listings. +
+
+ example *
+
+ + Code example showing basic usage. Minimum 10 characters. Helps developers + understand how to use your tool. +
+Example:
+
+ parameters
+
+ + Array of parameter objects describing function inputs. Each parameter has: +
+-
+
-
+
name- Parameter name +
+ -
+
type- TypeScript type +
+ -
+
description- What it does +
+ -
+
required- Boolean +
+ -
+
default- Default value + (optional) +
+
+ returns
+
+ + Object describing the return value: +
+-
+
-
+
type- Return type +
+ -
+
description- What is returned +
+
Example:
+
+ authentication
+
+ + Authentication requirements. Fields: +
+-
+
-
+
required- Boolean +
+ -
+
type- "api-key", "oauth", + "basic-auth", or "custom" +
+ -
+
envVar- Environment variable + name (optional) +
+ -
+
docsUrl- Auth documentation URL + (optional) +
+
+ pricing
+
+ + Pricing information. Fields: +
+-
+
-
+
model- "free", "freemium", + "paid", or "enterprise" +
+ -
+
freeLimit- Description of free + tier limits (optional) +
+ -
+
paidUrl- Pricing page URL + (optional) +
+
+ frameworks
+
+ + Array of compatible AI frameworks. Supported values: +
+
+ links
+
+ + External links. Optional fields: +
+-
+
-
+
documentation- Full + documentation URL +
+ -
+
playground- Interactive demo URL +
+ -
+
repository- Source code URL +
+ -
+
homepage- Project website +
+
+ tags
+
+ + Array of additional tags for searchability. Maximum 10 tags, each 2-30 + characters. +
+
+ status
+
+ + Tool maturity level. One of: +
+
+ aiAgent
+
+ + AI agent integration guidance. Helps LLMs understand when and how to use + your tool: +
+-
+
-
+
useCase- When to use this tool + (min 10 chars, required) +
+ -
+
limitations- Known constraints + (optional) +
+ -
+
examples- Array of example use + cases (optional) +
+
+ Complete Example: +
+Field Reference
+| Field | +Type | +Tier | +Required | +Description | +
|---|---|---|---|---|
+ category
+ |
+ string | +
+ |
+ + Yes + | +Tool category from predefined list | +
+ description
+ |
+ string | +
+ |
+ + Yes + | +Tool description (20-500 chars) | +
+ example
+ |
+ string | +
+ |
+ + Yes + | +Usage example code (min 10 chars) | +
+ parameters
+ |
+ array | +
+ |
+ No | +Function parameter definitions | +
+ returns
+ |
+ object | +
+ |
+ No | +Return type definition | +
+ authentication
+ |
+ object | +
+ |
+ No | +Auth requirements | +
+ pricing
+ |
+ object | +
+ |
+ No | +Pricing model and details | +
+ frameworks
+ |
+ array | +
+ |
+ No | +Compatible AI frameworks | +
+ links
+ |
+ object | +
+ |
+ No | +External resource URLs | +
+ tags
+ |
+ array | +
+ |
+ No | +Additional search tags (max 10) | +
+ status
+ |
+ string | +
+ |
+ No | +Maturity level | +
+ aiAgent
+ |
+ object | +
+ |
+ No | +AI agent integration guidance | +
Quality Score
++ Tools are ranked by quality score, calculated from three factors: +
+-
+
- + Rich: 4x multiplier + +
- + Basic: 2x multiplier + +
- + Minimal: 1x multiplier + +
+ Logarithmic scale based on monthly downloads. More downloads = higher score. +
++ Logarithmic scale based on repository stars. Community validation boosts + visibility. +
+Formula:
+Discovery & Sync
++ TPMJS automatically discovers and updates tools using three strategies: +
++ Monitors NPM's real-time changes feed every 2 minutes +
+
+ Searches for tpmjs-tool keyword
+ every 15 minutes
+
+ Updates download stats and quality scores hourly +
+Validation
++ The TPMJS specification is validated using Zod schemas. The validation logic is + available in the{' '} + + @tpmjs/types + {' '} + package. +
++ Common Validation Errors: +
+-
+
- + Invalid category: Category must be + one of the 12 predefined values + +
- + Description too short/long:{' '} + Description must be 20-500 characters + +
- + Example too short: Example must be + at least 10 characters + +
- + Invalid authentication type: Type + must be "api-key", "oauth", "basic-auth", or "custom" + +
- + Too many tags: Maximum 10 tags + allowed + +
- + Invalid URL: Links must be valid + HTTP(S) URLs + +
Publishing Your Tool
++ Publishing a tool to TPMJS is simple: +
+
+ Add tpmjs-tool keyword
+
+ Add tpmjs field
+
Publish to NPM
++ Appears on tpmjs.com in 15 min +
+