Skip to content

Overview

The GiiS MCP Server lets any MCP-compatible LLM client (Claude Desktop, Claude Code, Cursor, Windsurf, etc.) access your GiiS knowledge base, web search, and URL fetching capabilities through the Model Context Protocol.

Prerequisites

Before connecting, you'll need:

  • A running GiiS instance (either self-hosted or GiiS Cloud)

  • Authentication — see Personal Access Tokens or API Keys

  • An MCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.)

    Jump to environment variables, networking, and deployment settings for self-hosted MCP server

Quick Start

Claude Code (CLI)

bash
claude mcp add --transport http giis https://cloud.giis.ai/mcp \
  --header "Authorization: Bearer YOUR_GIIS_TOKEN_HERE"

Or add it to your project's .mcp.json:

json
{
  "mcpServers": {
    "giis": {
      "type": "http",
      "url": "https://cloud.giis.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${GIIS_TOKEN}"
      }
    }
  }
}

Then set the environment variable before running Claude Code:

bash
export GIIS_TOKEN="your-token-here"
claude

Claude Desktop

Add the following to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{
  "mcpServers": {
    "giis": {
      "url": "https://cloud.giis.ai/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_GIIS_TOKEN_HERE"
      }
    }
  }
}

TIP

Replace https://cloud.giis.ai/mcp with http://YOUR_GIIS_DOMAIN:8090/ if you're self-hosting.

Cursor / Windsurf / Other MCP Clients

Most MCP clients support HTTP transport with custom headers. The connection details are:

SettingValue
URLhttps://cloud.giis.ai/mcp (or http://YOUR_DOMAIN:8090/)
TransportHTTP (Streamable HTTP)
Auth HeaderAuthorization: Bearer YOUR_TOKEN

Refer to your client's MCP documentation for exact configuration steps.

Available Tools

The MCP server exposes three tools that LLM clients can invoke:

Search your private knowledge base indexed in GiiS. Returns ranked document chunks with content, relevance scores,
and metadata.

**Parameters:**

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `query` | string | Yes | — | Natural language search query |
| `source_types` | string[] | No | All sources | Filter by connector type (e.g. `["confluence", "github", "jira"]`) |
| `time_cutoff` | string | No | No cutoff | ISO 8601 datetime — only return docs updated after this time |
| `limit` | integer | No | `10` | Maximum number of results to return |

**Example call:**

```json
{
  "query": "What is the latest status of PROJ-1234?",
  "source_types": ["jira", "google_drive"],
  "time_cutoff": "2025-01-01T00:00:00Z",
  "limit": 5
}
```

**Response fields:**

| Field | Description |
|---|---|
| `documents` | Array of result objects |
| `documents[].semantic_identifier` | Human-readable document name |
| `documents[].content` | Relevant text snippet |
| `documents[].source_type` | Connector source (e.g. `"confluence"`) |
| `documents[].link` | URL to the original document |
| `documents[].score` | Relevance score |
| `total_results` | Number of results returned |
| `query` | The original query |
| `executed_queries` | List of queries actually executed (may include expansions) |

  To discover which source types are available, use the `indexed_sources` resource (see below).
Search the public internet for general knowledge and current events.

**Parameters:**

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `query` | string | Yes | — | Search query |
| `limit` | integer | No | `5` | Maximum number of results |

**Example call:**

```json
{
  "query": "React 19 migration guide",
  "limit": 5
}
```

**Response fields:**

| Field | Description |
|---|---|
| `results` | Array of web search results |
| `results[].title` | Page title |
| `results[].url` | Page URL |
| `results[].snippet` | Short text excerpt |
| `query` | The original query |

::: info
  `search_web` returns snippets, not full page content. Use `open_urls` to fetch the complete text of any result.

:::

Retrieve the complete text content from one or more web URLs.

**Parameters:**

| Parameter | Type | Required | Description |
|---|---|---|---|
| `urls` | string[] | Yes | List of URLs to fetch |

**Example call:**

```json
{
  "urls": [
    "https://react.dev/blog/2024/12/05/react-19",
    "https://react.dev/learn/react-compiler"
  ]
}
```

**Response fields:**

| Field | Description |
|---|---|
| `results` | Array of fetched pages |
| `results[].title` | Page title |
| `results[].url` | The fetched URL |
| `results[].content` | Full extracted text content |

Available Resources

**URI:** `resource://indexed_sources`

Lists all document connector types currently indexed in your GiiS instance (e.g. `"confluence"`, `"github"`,
`"google_drive"`, `"slack"`).

Use this to discover valid values for the `source_types` filter in `search_indexed_documents`.

**Example response:**

```json
{
  "indexed_sources": ["confluence", "github", "google_drive", "jira", "slack"]
}
```

Self-Hosted Configuration

To self-host the MCP server, you will need to enable the deployment via environment variables.

Docker:

bash
MCP_SERVER_ENABLED=true

Kubernetes:

yaml
configMap:
  MCP_SERVER_ENABLED: "true"

Health Check

Verify the MCP server is running:

bash
curl http://localhost:8090/health # or http://YOUR_DOMAIN:8090/health

Expected response:

json
{
  "status": "healthy",
  "service": "mcp_server"
}

Environment Variables

INFO

Most users should not need to configure these environment variables.

VariableDefaultDescription
MCP_SERVER_ENABLEDfalseSet to "true" to enable the MCP server
MCP_SERVER_HOST0.0.0.0Host to bind the MCP server
MCP_SERVER_PORT8090Port for the MCP server
MCP_SERVER_CORS_ORIGINS(empty)Comma-separated list of allowed CORS origins
API_SERVER_PROTOCOLhttpProtocol for internal API server connection
API_SERVER_HOST127.0.0.1Hostname for internal API server connection
API_SERVER_URL_OVERRIDE_FOR_HTTP_REQUESTS(unset)Full URL override for API server. Use this when self-hosting the MCP server against GiiS Cloud

Debugging & Testing

MCP Inspector

The MCP Inspector is an interactive debugging tool for MCP servers:

bash
npx @modelcontextprotocol/inspector

Setup in Inspector:

  • Ignore the OAuth configuration menus
  • Open the Authentication tab
  • Select Bearer Token authentication
  • Paste your GiiS PAT or API key
  • Click Connect

Once connected, you can browse tools, test calls with different parameters, and inspect request/response payloads.

Next Steps

Create a token to authenticate with the MCP server

Create shared API keys for team-wide MCP access

Add data sources to make your knowledge searchable via MCP

Connect GiiS to external MCP servers as a client

Released under the MIT License.