Skip to content

Commit 9e98e75

Browse files
committed
Merge branch 'main' into document-ui-mounts
2 parents 29eb67a + 950d3da commit 9e98e75

File tree

7 files changed

+281
-2
lines changed

7 files changed

+281
-2
lines changed

.github/workflows/claude.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Claude PR Assistant
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
pull_request_review_comment:
7+
types: [created]
8+
issues:
9+
types: [opened, assigned]
10+
pull_request_review:
11+
types: [submitted]
12+
13+
jobs:
14+
claude-code-action:
15+
if: |
16+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19+
(github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
20+
runs-on: ubuntu-latest
21+
permissions:
22+
contents: read
23+
pull-requests: read
24+
issues: read
25+
id-token: write
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
29+
with:
30+
fetch-depth: 1
31+
32+
- name: Run Claude PR Action
33+
uses: anthropics/claude-code-action@beta
34+
with:
35+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
36+
# Or use OAuth token instead:
37+
# claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38+
timeout_minutes: '20'
39+
# mode: tag # Default: responds to @claude mentions
40+
# Optional: Restrict network access to specific domains only
41+
# experimental_allowed_domains: |
42+
# .anthropic.com
43+
# .github.com
44+
# api.github.com
45+
# .githubusercontent.com
46+
# bun.sh
47+
# registry.npmjs.org
48+
# .blob.core.windows.net

.github/workflows/update-toolhive-reference.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,7 @@ jobs:
7373
This PR updates the ToolHive CLI and API reference documentation to the latest release: ${{ steps.imports.outputs.version }}.
7474
commit-message: |
7575
Update ToolHive reference docs for ${{ steps.imports.outputs.version }}
76+
labels: |
77+
autogen-docs
7678
delete-branch: true
7779
sign-commits: true

CLAUDE.md

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
# Project overview
2+
3+
This is the user-facing documentation for ToolHive, an open source tool that
4+
helps you run and manage Model Context Protocol (MCP) servers easily and
5+
securely. The site is built using Docusaurus and deployed with Vercel.
6+
7+
## Folder structure
8+
9+
- `/docs`: contains the main documentation files. Each file corresponds to a
10+
page in the documentation.
11+
- `/static`: contains static assets like images, icons, and other files that are
12+
served directly.
13+
- `/src`: contains the source code for the website, including components,
14+
styles, and customizations.
15+
16+
## Primary configuration files
17+
18+
- `/docusaurus.config.ts`: the main configuration file for Docusaurus, where you
19+
define site metadata, theme, plugins, and other settings.
20+
- `/sidebars.ts`: defines the structure of the documentation sidebar, including
21+
which pages appear in the sidebar and their order.
22+
- `/vercel.json`: configuration file for Vercel deployment, specifying build
23+
settings and redirects.
24+
25+
## Libraries and tools
26+
27+
- Docusaurus for the documentation site framework.
28+
- React and TypeScript for building custom components and pages.
29+
- npm for package management.
30+
- Vercel for deployment and hosting.
31+
32+
Code quality tools:
33+
34+
- Prettier for code formatting.
35+
- markdownlint for enforcing Markdown style conventions.
36+
- ESLint for JavaScript/TypeScript linting.
37+
38+
## Audience
39+
40+
The primary audience is developers and DevOps professionals who want to run and
41+
manage Model Context Protocol (MCP) servers using ToolHive. They may be new to
42+
MCP servers or have some experience with them.
43+
44+
The documentation should be accessible to a wide range of technical users,
45+
including those who may not be familiar with the specific technologies used in
46+
ToolHive.
47+
48+
## Writing style guide
49+
50+
The primary goal of the documentation is to be clear, concise, and
51+
user-friendly. The writing style should be approachable and easy to understand,
52+
while still providing the necessary technical details.
53+
54+
The project's official language is US English.
55+
56+
### Tone and voice
57+
58+
- Strive for a casual and conversational tone without becoming overly informal.
59+
- Be friendly and relatable while retaining credibility and professionalism.
60+
- Avoid slang and colloquial expressions.
61+
- Use clear, straightforward language and avoid overly complex jargon to make
62+
content accessible to a wide audience.
63+
- Use active voice instead of passive voice.
64+
- Address the reader using the second person ("you", "your"). Avoid the first
65+
person ("we", "our") and third person ("the user", "a developer").
66+
67+
### Capitalization
68+
69+
- Capitalize proper nouns like names, companies, and products. Generally, don't
70+
capitalize features or generic terms.
71+
- Use sentence case in titles and headings.
72+
- Use `ALL_CAPS` to indicate placeholder text/parameters, where the reader is
73+
expected to change a value.
74+
- Expand acronyms on first use, then use the acronym in subsequent references.
75+
- Exception: MCP is used ubiquitously in this project, so it does not need to
76+
be expanded on first use.
77+
78+
### Punctuation
79+
80+
- Use the Oxford comma (aka serial commas) when listing items in a series.
81+
- Use one space between sentences.
82+
- Use straight double quotes and apostrophes. Replace smart quotes (“ ”) and
83+
curly apostrophes (’ ’) with straight quotes (") and straight apostrophes (').
84+
85+
### Links
86+
87+
- Use descriptive link text. Besides providing clear context to the reader, this
88+
improves accessibility for screen readers.
89+
- When referencing other docs/headings by title, use sentence case so the
90+
reference matches the corresponding title or heading.
91+
92+
### Images
93+
94+
- Use images sparingly and only when they add value to the content.
95+
- Use images to illustrate complex concepts, provide examples, or enhance
96+
understanding.
97+
- Use screenshots to show UI elements or workflows, but ensure they are clear,
98+
relevant, and add value to the content.
99+
- Don't use images of text, code samples, or terminal output. Use actual text so
100+
readers can copy/paste and find the contents via search engines.
101+
- Add alt text to images to describe their content and purpose. This improves
102+
accessibility for users with visual impairments.
103+
104+
### Examples
105+
106+
- Use examples to clarify complex concepts or demonstrate how to use a feature.
107+
- Prefer practical, real-world examples over abstract or contrived ones.
108+
109+
### Formatting
110+
111+
- Bold: use when referring to UI elements; prefer bold over quotes.
112+
- Italics: emphasize particular words or phrases, such as when
113+
introducing/defining a term.
114+
- Underscore: do not use; reserved for links.
115+
- Use inline code formatting for short code elements, such as variable names,
116+
function names, or command-line options.
117+
- Use block code formatting for longer code snippets or examples.
118+
119+
### Word list
120+
121+
Common terms used in this project:
122+
123+
- ToolHive - this project, an open source tool that helps you run and manage MCP
124+
servers easily and securely
125+
- Stacklok - the company behind ToolHive
126+
- GitHub Copilot
127+
- Model Context Protocol (MCP)
128+
- open source (not "open-source")
129+
- large language model (LLM)
130+
- Visual Studio Code ("VS Code" after first use)
131+
132+
Check this list for consistent use within the documentation. If you find
133+
inconsistencies, update the text to match the preferred term. If you find a term
134+
that is not listed here, consider adding it to the list for future reference.
135+
136+
## Markdown style
137+
138+
Prettier and markdownlint are used to enforce the following Markdown style
139+
conventions.
140+
141+
- Headings: use "ATX-style" headings
142+
- Use unique headings within a document
143+
- Unordered lists: use hyphens (`-`), not asterisks (`*`)
144+
- Bold: Use the `**` syntax for bold text, not `__`
145+
- Italics: Use the `__` syntax for italic text, not `*`
146+
- Ordered lists: use lazy numbering for long or verbose lists.
147+
- Note: this is a "soft" recommendation. It is also intended only for Markdown
148+
documents that are read through a rendering engine. If the Markdown will be
149+
consumed in raw form like a repo README file, use real numbering.
150+
- Code blocks: use fenced code blocks (` ``` ` to begin/end) and always declare
151+
the language. If the language is unknown or plain text like log output, use
152+
`text` as the language.
153+
- Add blank lines around headings, lists, and code blocks.
154+
- No trailing whitespace on lines.
155+
- Use the `\` character at the end of a line for a single-line break, not the
156+
two-space syntax which is easy to miss. Exception:
157+
- Line limit: wrap lines at 80 characters; exceptions for links, tables,
158+
headings, and code blocks
159+
160+
### Docusaurus specifics
161+
162+
This website is built using Docusaurus, which has some specific requirements and
163+
conventions for Markdown files:
164+
165+
- Heading 1 is reserved for the page title, typically defined in the Markdown
166+
front matter section. Sections within a page begin with Heading 2 (`##`).
167+
- Use relative file links (with .md/.mdx extensions) when referring to other
168+
pages.
169+
- Use the .mdx extension for pages containing JSX includes.
170+
- Use the front matter section on all pages. At a minimum, set the `title` (this
171+
is rendered into the page as an H1) and a short `description`.
172+
- Use the `admonition` component for notes, tips, warnings, and other
173+
annotations. This provides a consistent look and feel across the site.
174+
- Use the `:::type` syntax to define the admonition type, such as `note`,
175+
`tip`, `info`, `warning`, or `danger`.
176+
- Place images in `static/img` using WebP, PNG, or SVG format.
177+
- Use the `ThemedImage` component to provide both light and dark mode
178+
screenshots for apps/UIs that support both.
179+
- Use the `Tabs` and `TabItem` components to create tabbed content sections.

docs/toolhive/guides-ui/run-mcp-servers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ directly in the UI.
210210
- **Host path** — choose a file or folder on your computer.
211211
- **Container path** — where it should appear inside the server (for example,
212212
`/data`).
213-
- (Optional) uncheck **Read-only** to allow the server to write. By default,
214-
mounts are read-only.
213+
- By default, mounts are in read-write mode. If you want your volume mount to
214+
be **Read-only**, select the "Read-only access" option from the drop-down.
215215
3. If you need additional mounts, click **Add a volume** and repeat.
216216
4. Click **Install server** to start the server with your volume(s).
217217

docs/toolhive/reference/cli/thv_proxy.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,5 +115,6 @@ thv proxy [flags] SERVER_NAME
115115
### SEE ALSO
116116

117117
* [thv](thv.md) - ToolHive (thv) is a lightweight, secure, and fast manager for MCP servers
118+
* [thv proxy stdio](thv_proxy_stdio.md) - Create a stdio-based proxy for an MCP server
118119
* [thv proxy tunnel](thv_proxy_tunnel.md) - Create a tunnel proxy for exposing internal endpoints
119120

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: thv proxy stdio
3+
hide_title: true
4+
description: Reference for ToolHive CLI command `thv proxy stdio`
5+
last_update:
6+
author: autogenerated
7+
slug: thv_proxy_stdio
8+
mdx:
9+
format: md
10+
---
11+
12+
## thv proxy stdio
13+
14+
Create a stdio-based proxy for an MCP server
15+
16+
### Synopsis
17+
18+
Create a stdio-based proxy that connects stdin/stdout to a target MCP server.
19+
20+
Example:
21+
thv proxy stdio my-workload
22+
23+
24+
```
25+
thv proxy stdio WORKLOAD-NAME [flags]
26+
```
27+
28+
### Options
29+
30+
```
31+
-h, --help help for stdio
32+
```
33+
34+
### Options inherited from parent commands
35+
36+
```
37+
--debug Enable debug mode
38+
```
39+
40+
### SEE ALSO
41+
42+
* [thv proxy](thv_proxy.md) - Create a transparent proxy for an MCP server with authentication support
43+

static/api-specs/toolhive-api.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,12 @@ components:
262262
type: string
263263
network:
264264
$ref: '#/components/schemas/permissions.NetworkPermissions'
265+
privileged:
266+
description: |-
267+
Privileged indicates whether the container should run in privileged mode
268+
When true, the container has access to all host devices and capabilities
269+
Use with extreme caution as this removes most security isolation
270+
type: boolean
265271
read:
266272
description: |-
267273
Read is a list of mount declarations that the container can read from

0 commit comments

Comments
 (0)