Skip to content

Connectors ​

For users, the public concept is an integration: a connected source Murph can use for context.

For plugin authors, a connector is the module that implements a plugin-provided integration.

For the full connector contract, credential shape, context source examples, and boundaries, use Extending Connectors.

Examples:

  • Jira integration implemented by a Jira connector
  • internal docs integration implemented by an internal docs connector
  • customer CRM integration implemented by a CRM connector

What a connector owns ​

A connector owns the source identity, credential check, context sources, and tools for one plugin-provided integration.

The same metadata also drives the integration card in the browser UI after plugins are reloaded. The UI does not regenerate source code for new connectors.

Integration module ​

Connector files live under integrations/*.mjs and are referenced by capabilities.integrations in plugin.json.

The module must export a default connector object or a named integration export.

js
export default {
  id: 'jira',
  name: 'Jira',
  description: 'Jira connector',
  credential: {
    authType: 'api_key',
    credentialKind: 'api_key',
    envKey: 'JIRA_API_KEY',
    credentialLabel: 'API key'
  },
  tools: [],
  contextSources: [],
  isConfigured() {
    return false;
  }
};

Credentials ​

The credential block describes how Murph checks whether the source is configured.

It also describes the generic setup UI: API key, OAuth install URL, or local path. Use clear credentialLabel text because it is shown directly to the operator.

Context sources ​

Use contextSources when the source can return grounding context for Murph.

Tools ​

Use tools for specific callable actions owned by the connector.

Example: a Jira integration can expose a jira.search tool through its connector.

Connector ids ​

Connector ids must be stable and use simple id characters: letters, numbers, dots, underscores, or hyphens.

Safety boundary ​

Scoped plugin connectors can implement integrations with skills, context sources, and read-only tools. Messaging providers belong in channel plugins, not connector modules.

Self-hosted handoff agent for async coverage.