Skip to main content
Glama
thesimonharms

jaringan-mcp

Moved. This GitHub copy is an archive. Use the Forgejo repository.

Canonical repository: https://git.simonharms.com/thesimonharms/jaringan-mcp

jaringan-mcp

MCP (Model Context Protocol) server for the Jaringan (JRG) protocol. Lets AI agents fetch, inspect, search, and manage Jaringan pages through structured tool calls.

Install

npm install jaringan-mcp

Related MCP server: hidrix-tools

Usage

Standalone

npm install jaringan-mcp

# Connect to a JRG server on localhost:7080
npx jaringan-mcp --jrg-port 7080

# Read from local .jrg files instead
npx jaringan-mcp --file-root ~/wiki

# Custom host/port with browser binary
npx jaringan-mcp --jrg-host 10.0.0.1 --jrg-port 7070 --browser /usr/bin/jaringan-browser

With Hermes Agent

Add to ~/.hermes/config.yaml:

mcp_servers:
  jaringan:
    command: "npx"
    args: ["-y", "jaringan-mcp", "--jrg-port", "7080"]

Or for local file access:

mcp_servers:
  jaringan:
    command: "npx"
    args: ["-y", "jaringan-mcp", "--file-root", "/home/user/wiki"]

Restart Hermes to auto-discover the tools.

With Claude Code / Copilot / Any MCP Host

{
  "mcpServers": {
    "jaringan": {
      "command": "npx",
      "args": ["-y", "jaringan-mcp", "--jrg-port", "7080"]
    }
  }
}

Tools

Tool

Description

jrg_fetch

Fetch a JRG page → structured content (title, body, tags, links)

jrg_fetch_raw

Fetch raw JRG protocol response (status, headers, body)

jrg_inspect

Inspect a page → JSON manifest of interactive elements

jrg_search

Search local .jrg pages under a root directory

jrg_auth_list

List all stored Jaringan authentication tokens

jrg_view

Render a page as formatted plain text

jrg_list

List all available Jaringan pages (slug + title)

Options

Flag

Default

Description

--jrg-host

localhost

JRG TCP server hostname

--jrg-port

7070

JRG TCP server port

--file-root

Read from local .jrg files (instead of TCP)

--browser

jaringan-browser

Path to jaringan-browser binary

--tcp-timeout

5000

TCP connection timeout in ms

Architecture

AI Agent (Hermes, Claude Code, etc.)
        │
        │ MCP protocol (JSON-RPC over stdio)
        ▼
┌─────────────────────────────┐
│     jaringan-mcp server     │
│                             │
│  ┌───────────────────────┐  │
│  │  jrg-client (lib)     │──│── TCP → JRG server (port 7070/7080)
│  └───────────────────────┘  │
│  ┌───────────────────────┐  │
│  │  jaringan-browser CLI │──│── inspect / search / auth
│  └───────────────────────┘  │
│  ┌───────────────────────┐  │
│  │  Local file reader    │──│── .jrg files on disk
│  └───────────────────────┘  │
└─────────────────────────────┘

Publishing

npm run build
npm publish --access public

License

MIT

Available Tools

7 tools
jrg_auth_listA

List all stored Jaringan authentication tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose behavioral traits like permissions required, side effects, or whether the operation is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, front-loaded with purpose. Extremely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is adequate but lacks details about return format or what constitutes a 'token'. It does not explain the context of 'Jaringan'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Baseline for 0 params is 4. The description adds context by specifying 'stored Jaringan authentication tokens'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (List) and resource (stored Jaringan authentication tokens). It is specific and distinguishes itself from siblings like jrg_list, which likely lists other resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as jrg_list or jrg_search. The description does not provide context for selective usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jrg_fetchA

Fetch a Jaringan (JRG) page and return structured content (title, body, tags, links). Uses TCP to a JRG server by default, or a local file root. URL can be jrg://host:port/path or just a path like "welcome" or "/port-map".

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPage URL or path (e.g. "jrg://localhost:7080/welcome", "welcome", "/port-map")

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Describes transport (TCP/local) and return fields, but lacks details on safety (read-only implied), error handling, or side effects. Adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first gives purpose and output, second explains protocol and URL variants. No wasted words, front-loaded content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, description covers core functionality and input format well. Could mention sibling distinctions or error behavior, but still mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description already covers URL format (100% coverage). Description adds value by showing examples and explaining 'jrg://' vs path usage, enhancing understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb (Fetch), resource (Jaringan page), and output (structured content: title, body, tags, links). Distinguishes from sibling jrg_fetch_raw by mentioning structured vs raw.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains network protocol (TCP or local file root) and URL formats with examples, but does not explicitly contrast with siblings like jrg_fetch_raw or jrg_view. Implicit guidance from output type, but no when-to-use/alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jrg_fetch_rawA

Fetch a JRG page and return the raw protocol response (status line, headers, body).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPage URL or path

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool returns raw protocol response, implying read-only behavior, but does not mention error conditions, rate limits, or whether it modifies state. The description provides basic behavioral info but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core functionality. Every word contributes meaning, with no redundancy or irrelevant information. It is well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description adequately explains the return format (status line, headers, body). However, it could be more complete by mentioning potential errors or encoding details. It is quite good but not fully exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with a clear description for the single parameter 'url'. The tool description adds no additional meaning or format details beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'JRG page', and specifies that the output is the raw protocol response including status line, headers, and body. This distinguishes it from sibling tools like jrg_fetch or jrg_view, which likely return parsed or rendered content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like jrg_fetch or jrg_inspect. It does not mention any prerequisites, limitations, or exclusions, leaving the agent to infer context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jrg_inspectA

Inspect a JRG page and return a JSON manifest of interactive elements (headings, links, paragraphs, inputs, buttons).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe jrg:// URL to inspect

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the output format but does not explicitly state whether the tool is read-only or if it has side effects. Since no annotations are provided, the description carries the full burden; it is adequate for a simple inspection tool but lacks details like permissions or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, no wasted words, front-loaded with the action and resource. Every part contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description is reasonably complete. It specifies the input (jrg:// URL) and output (JSON manifest of interactive elements). However, it lacks notes on error handling or performance considerations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the single 'url' parameter has a description). The tool description adds context about the overall purpose but does not provide additional parameter-specific details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Inspect'), the resource ('a JRG page'), and the output ('a JSON manifest of interactive elements' with specific types). It implicitly distinguishes from sibling tools like jrg_fetch (raw content) or jrg_list (list pages).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like jrg_fetch or jrg_search. The sibling list provides context but no direct advice on selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jrg_listA

List all available Jaringan pages. Returns an array of { slug, title } entries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that the tool lists all pages and returns a specific structure. For a simple read-only listing tool with no side effects, this is sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: action and return format. Front-loaded and no wasted words. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description fully covers what the agent needs: purpose and return type. Complete given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so schema coverage is 100%. The description adds value by specifying the output format, which goes beyond the empty schema. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all Jaringan pages and specifies the return format as an array of { slug, title } entries. It distinguishes from siblings like jrg_search, which does filtered searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing all pages when no filtering is needed. While it doesn't explicitly mention when not to use or provide alternatives, the context with sibling tools like jrg_search makes the usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jrg_viewB

Render a JRG page as formatted plain text (human-readable).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe jrg:// URL or file path to view

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the output format (human-readable plain text) but omits behavioral traits such as permissions needed, whether the operation is read-only (likely), or any side effects. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the key information, and contains no unnecessary words or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is adequate but lacks explanations of error behavior, URL format, or how the rendered text relates to the page's structure. Given the context (no annotations, siblings listed), more details would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'url' parameter. The tool description does not add additional meaning beyond what the schema already provides, so the parameter semantics score defaults to 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Render') and resource ('JRG page') with output format ('formatted plain text (human-readable)'). It implicitly distinguishes from sibling tools like jrg_fetch (likely raw) but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for human-readable viewing but provides no explicit guidance on when to use this tool versus siblings like jrg_fetch, jrg_inspect, or jrg_list. No when-not-to-use or alternative names are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.1
    • First observedjrg_auth_list
    • First observedjrg_fetch
    • First observedjrg_fetch_raw
    • First observedjrg_inspect
    • First observedjrg_list
    • First observedjrg_search
    • First observedjrg_view

TDQS

A3.8/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a distinct purpose: listing tokens, fetching pages in different formats (structured, raw, plain text), inspecting interactive elements, listing all pages, and searching local pages. The fetch variants are clearly differentiated by their output format, leaving no ambiguity.

Naming Consistency5/5

All tools follow a consistent 'jrg_verb' pattern with verbs like list, fetch, inspect, search, view. The compound 'auth_list' and 'fetch_raw' still adhere to the imperative style, making the naming predictable and easy to parse.

Tool Count5/5

With 7 tools, the server covers the core reading operations (list, fetch, inspect, search) without being excessive or sparse. The count feels well-scoped for a focused Jaringan page retrieval and discovery surface.

Completeness3/5

The tool set is read-only, providing listing, fetching, inspecting, and searching, but lacks any write operations such as create, update, or delete pages. While it may suffice for read-only use cases, it is incomplete for a general-purpose Jaringan server that would typically include content management.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers