# Write Connector

Add a new built-in OpenWiki source connector.

- Repository: https://github.com/langchain-ai/openwiki (17657 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add langchain-ai/openwiki --skill write-connector -g -a claude-code -y`
Codex: `npx skills add langchain-ai/openwiki --skill write-connector -g -a codex -y`
Cursor: `npx skills add langchain-ai/openwiki --skill write-connector -g -a cursor -y`
Gemini CLI: `npx skills add langchain-ai/openwiki --skill write-connector -g -a gemini-cli -y`

## Description

Add a new built-in OpenWiki source connector. Use when a user asks to create or implement an OpenWiki connector.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Write An OpenWiki Connector

OpenWiki connectors are built-in TypeScript modules in the OSS repository. Do not create a plugin marketplace, dynamic connector package, or runtime-loaded untrusted connector. Add normal source files and tests.

## Prefer Custom MCP For Arbitrary Servers

If the knowledge source already exposes a read-only MCP server (HTTP or stdio), use the built-in `custom-mcp` connector instead of adding a new ConnectorId:

- Configure `~/.openwiki/connectors/custom-mcp/config.json` with `enabled`, `transport`, optional `allowedTools`, and optional `readOnlyOperations`.
- Put secrets in `~/.openwiki/.env` and reference them as `${ENV_NAME}` in transport headers/env.
- Agent tools `openwiki_list_mcp_tools` / `openwiki_call_mcp_tool` accept `custom-mcp`.

Add a dedicated built-in connector only when you need provider-specific auth, scoping UI, or deterministic API pulls that MCP cannot express.

## Required Shape

- Add the connector to src/connectors/types.ts and src/connectors/registry.ts.
- Implement the connector under src/connectors/sources/<connector>.ts.
- The connector must expose a ConnectorRuntime with id, displayName, description, backend, requiredEnv, supportsAgenticDiscovery, and ingest().
- Ingestion writes raw JSON/manifests under ~/.openwiki/connectors/<id>/raw/<run-id>/.
- State lives in ~/.openwiki/connectors/<id>/state.json.
- Config lives in ~/.openwiki/connectors/<id>/config.json.
- Secrets live in ~/.openwiki/.env and are referenced only by env var name.

## Security Rules

The rest: https://github.com/langchain-ai/openwiki/blob/HEAD/skills/write-connector/SKILL.md
