Searchport

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 7, 2026

Web, local, news, image, and video search through the Brave Search API.

Overview

AI-generated overview

Searchport gives an assistant five Brave Search tools — web, local, news, image and video search — through a local stdio MCP server.

What you can do
  • Search the general web index and get titles, links and excerpts
  • Find nearby businesses and places with address, phone and rating details
  • Look up current news stories with sources, summaries and story age
  • Find images with source pages and direct image links
  • Find videos with descriptions, durations and sources
When to use it
Use it when an assistant needs live web, news, local business, image or video results and you already have a Brave Search API subscription. It is a single, uniform way to cover all five search kinds from one server.
Requirements
A Brave Search API subscription key supplied in the BRAVE_API_KEY environment variable; the key is sent to the API as the X-Subscription-Token header. Runs locally via npx (Node.js) or the Docker image, and needs network access to the Brave Search API. Desktop only.
Before you install
Requires a paid Brave Search API subscription key; searches fail without BRAVE_API_KEY. Queries and results are sent to the Brave Search API, a third party. The server only reads search results and does not write or delete data.

Installation

In SourceWeft

  1. Open Searchport in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

searchport

searchport is one doorway to five kinds of Brave search. A single question can be asked against the general web index, local business listings, current news, images, or videos, and every answer comes back in the same shape: a title, the address it lives at, a short excerpt, and one extra line of detail that fits the kind — how long ago a story ran, how long a video plays, where a shop is and how it is rated. It runs from the command line or as an MCP server for agents.

A Brave Search API subscription key is required. Put it in the BRAVE_API_KEY environment variable; the key is sent to the API as the X-Subscription-Token header and never appears in output. When the variable is missing, every search fails with an error that names it.

Install

bash
npx @reneturcios/searchport web "trail running shoes"

Or run the container image:

bash
docker run -i -e BRAVE_API_KEY ghcr.io/cloudcorprecords/searchport

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

bash
export BRAVE_API_KEY="your subscription key"
# General web search; --count is results per page (max 20),# --offset pages forward (max 9)searchport web "composting basics"searchport web "composting basics" --count 5 --offset 1
# The other four kinds take the same query and --countsearchport local "bakery near the mission" --count 5searchport news "trail network vote"searchport images "ridge sunrise"searchport videos "trail running form"
# Machine-readable output for any kindsearchport web "composting basics" --json
searchport --version

Exit codes: 0 on success, 1 when a search fails (including a missing BRAVE_API_KEY or an API error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

bash
npx -y @reneturcios/searchport mcp

MCP client configuration:

json
{  "mcpServers": {    "searchport": {      "command": "npx",      "args": ["-y", "@reneturcios/searchport", "mcp"],      "env": { "BRAVE_API_KEY": "your subscription key" }    }  }}

Tools

ToolInputWhat it returns
brave_web_searchquery (string, required), count (number, optional), offset (number, optional)Web results as a numbered text block: title, URL, and excerpt per result.
brave_local_searchquery (string, required), count (number, optional)Local listings: name, URL, and a detail line with address, phone, and rating when the API provides them.
brave_news_searchquery (string, required), count (number, optional)News stories: headline, URL, summary, and the story's age.
brave_image_searchquery (string, required), count (number, optional)Image results: title, source page URL, and the direct image URL.
brave_video_searchquery (string, required), count (number, optional)Video results: title, URL, description, and duration.

Counts are clamped to the API's per-page limit of 20 and offsets to its maximum of 9. An empty result set is reported as such, not as an error; a missing key or a failed API call is reported as a tool error.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Source: README.md at commit 197c7f3

Tools

5

Version history

1
  1. v0.1.0LatestOct 31, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts