Teamctx

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 3, 2026

Shared team context for ProductNow: search, read, write and organise workspace documents.

VerifiedSTDIODesktop only

Overview

Teamctx's local MCP server; no sign-in required; STDIO.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

  1. Open Teamctx in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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

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

Or run the container image:

bash
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.

CLI

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

bash
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:

bash
npx -y @reneturcios/teamctx mcp

MCP client configuration:

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

Tools

ToolRequired inputsWhat it does
search— (query required for folder search)Search shared context or ProductNow help for evidence excerpts with citations, or search folder names.
fetchdocumentIdRead 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_versionsdocumentIdList every version of a document, newest first; optional version-status filter.
get_statusdocumentIdReport whether a document's draft agent is running or idle.
remembercontentStore one fact, decision, or note in the right document/folder.
create_documentname, promptCreate a document, file it in a folder, and generate content with AI.
edit_documentdocumentId, messageHand editing instructions to the document's own editing agent.
update_document_statusdocumentId, statusPromote the current draft with an action verb: snapshot, review, or publish.
create_foldernameCreate a folder, optionally under a parent folder.
moveidsMove documents and folders, several at once, into one folder or the root.
renameid, nameChange one document's or folder's name.
archiveidsArchive documents and folders, several at once; nothing is deleted.
comment_on_documentdocumentId, commentComment on a document's current review version, optionally anchored to quoted text.
reply_to_threadthreadId, messageReply to an existing comment thread.
upload_mediafileName, mimeTypeAllocate 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

bash
npm installnpm 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.

Source: README.md at commit 23983f9

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestNov 3, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts