API
A read-only JSON API for accessing community data. No authentication required. CORS enabled.
Base URL
Endpoints
| Endpoint | Description |
|---|---|
/api/companies | List companies |
/api/companies/:slug | Get company |
/api/events | List events |
/api/events/:slug | Get event |
/api/groups | List groups |
/api/groups/:slug | Get group |
/api/jobs | List jobs |
/api/jobs/:slug | Get job |
/api/education | List education |
/api/education/:slug | Get education |
/api/news | List news |
/api/news/:slug | Get news article |
/api/people | List people |
/api/people/:slug | Get person |
/api/projects | List projects |
/api/projects/:slug | Get project |
/api/products | List products |
/api/products/:slug | Get product |
/api/technologies | List technologies |
/api/technologies/:slug | Get technology |
Pagination
List endpoints support pagination:
limit- Number of items (default: 20, max: 100)offset- Items to skip (default: 0)
Responses include a pagination object:
{
"data": [...],
"pagination": {
"total": 42,
"limit": 20,
"offset": 0,
"hasMore": true
}
}Responses also include RFC 5988 Link headers for navigation:
Link: <https://siliconharbour.dev/api/companies?limit=20&offset=20>; rel="next",
<https://siliconharbour.dev/api/companies?limit=20&offset=0>; rel="first"
OpenAPI Specification
MCP Server
An MCP (Model Context Protocol) server is available at /mcp for AI assistants and agents.
Endpoint: https://siliconharbour.dev/mcp
Tools
| Tool | Description | Auth required |
|---|---|---|
search | Search the API schema to discover available data types and field shapes | No |
query | Execute JavaScript in a secure sandbox to query community data on-demand | No |
execute | Like query but also exposes sync and pending-review actions | Yes |
Setup (Claude Desktop / OpenCode)
Public access — no token needed:
{
"mcpServers": {
"siliconharbour": {
"url": "https://siliconharbour.dev/mcp"
}
}
}Example queries
// Upcoming events
import { events } from "siliconharbour";
export default await events({ upcoming: true, limit: 5 });// Jobs filtered by keyword
import { jobs } from "siliconharbour";
export default await jobs({ query: "developer", limit: 10 });// Cross-entity query
import { events, companies, groups } from "siliconharbour";
const [upcoming, cos, grps] = await Promise.all([
events({ upcoming: true }),
companies({ limit: 5 }),
groups({ limit: 5 }),
]);
export default {
upcoming: upcoming.length,
companies: cos.map((c) => c.name),
groups: grps.map((g) => g.name),
};Feeds
RSS feeds and an iCal calendar are also available. See Stay Connected for details.
/feed.rss- Combined RSS feed/events.rss- Events RSS feed/news.rss- News RSS feed/jobs.rss- Jobs RSS feed/calendar.ics- iCal calendar subscription