Skip to main content
Glama

teamctx

teamctx is a forwarding client for ProductNow's shared team context. The real ProductNow server is hosted, not self-hosted: teamctx takes MCP tool calls (or CLI calls) for searching, reading, writing, and organising workspace documents and forwards them to the hosted ProductNow MCP endpoint, returning whatever that server returns. One binary serves a command-line interface and a stdio MCP server.

The upstream endpoint is https://api.productnow-prod.com/mcp (Streamable HTTP), protected by OAuth 2.0 via Auth0 with the required scope mcp:use. teamctx does not run the OAuth flow itself: you supply an access token you already hold through the PRODUCTNOW_ACCESS_TOKEN environment variable, and teamctx sends it as a Bearer credential on every forwarded call. If the variable is missing or blank, teamctx fails with an error naming it before any request is attempted.

This package implements 16 of the 18 enumerated upstream tools — the labelled core subset for which the public docs publish a full Input table. Two tools are deliberate omissions because no complete parameter schema is published for them: curate_knowledge_pack and create_help_document. They are not advertised and not forwarded. Parameter types for the 16 built tools are inferred from the Input tables in the public documentation (the upstream tool catalogue publishes no JSON-Schema property definitions); names, requiredness, and enum values are as published.

Install

npx @reneturcios/teamctx call search '{"query":"pricing"}'

Or run the container image:

docker run -i ghcr.io/cloudcorprecords/teamctx

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

Related MCP server: anythingllm-mcp

CLI

The CLI uses one generic subcommand rather than a subcommand per tool, because every tool takes a JSON-object argument set:

teamctx call <tool> [json-args]
teamctx call search '{"query":"pricing","resultType":"documents"}'
teamctx call fetch '{"documentId":"doc_123"}'
teamctx call fetch_folder '{}'
teamctx call remember '{"content":"We ship on Fridays."}'

teamctx --version

json-args must be a single JSON object when given; invalid JSON, a non-object value, an unknown tool, or extra arguments are usage errors (exit 2) and are rejected before any credential check. Runtime failures — including a missing PRODUCTNOW_ACCESS_TOKEN or an upstream error — exit 1. Success exits 0 and prints the upstream result as JSON.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/teamctx mcp

MCP client configuration:

{
  "mcpServers": {
    "teamctx": {
      "command": "npx",
      "args": ["-y", "@reneturcios/teamctx", "mcp"],
      "env": {
        "PRODUCTNOW_ACCESS_TOKEN": "<your ProductNow access token>"
      }
    }
  }
}

Tools

Tool

Required inputs

What it does

search

— (query required for folder search)

Search shared context or ProductNow help for evidence excerpts with citations, or search folder names.

fetch

documentId

Read one document: full text, sections, comment threads, folder, canonical URL.

fetch_folder

—

List a folder or the warehouse root, optionally as a nested tree (deep).

list_document_versions

documentId

List every version of a document, newest first; optional version-status filter.

get_status

documentId

Report whether a document's draft agent is running or idle.

remember

content

Store one fact, decision, or note in the right document/folder.

create_document

name, prompt

Create a document, file it in a folder, and generate content with AI.

edit_document

documentId, message

Hand editing instructions to the document's own editing agent.

update_document_status

documentId, status

Promote the current draft with an action verb: snapshot, review, or publish.

create_folder

name

Create a folder, optionally under a parent folder.

move

ids

Move documents and folders, several at once, into one folder or the root.

rename

id, name

Change one document's or folder's name.

archive

ids

Archive documents and folders, several at once; nothing is deleted.

comment_on_document

documentId, comment

Comment on a document's current review version, optionally anchored to quoted text.

reply_to_thread

threadId, message

Reply to an existing comment thread.

upload_media

fileName, mimeType

Allocate a signed upload URL (valid 5 minutes) for image/video media.

Notes on the less obvious rules, as documented upstream: search defaults to the workspace scope and documents result type; creator and date filters combine as documented in the tool schema. list_document_versions filters by version statuses (DRAFT … ARCHIVED), while update_document_status takes action verbs (snapshot / review / publish) — do not mix them up. create_document's folderId is required in practice: omit it only for the warehouse root.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch only)
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to search and ask questions about documents stored in AnythingLLM workspaces through MCP tools.
    4
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Gives AI agents access to a persistent document workspace so they can search, read, and update knowledge through 22 focused tools, 2 prompts, and 3 resources, with batch actions and direct workspace-item inspection. Runs either as a hosted Streamable HTTP endpoint with OAuth or API keys, or as a self-hosted stdio bridge pointed at your own instance.
    -