Skip to main content
Glama
mcdonaldsam
by mcdonaldsam

Point MCP Server

MCP server for the Point Knowledge API — verified, citable knowledge for AI coding assistants.

Point indexes curated technical documentation (RFCs, framework docs, standards, API references) and makes it searchable with hybrid search (BM25 + vector) and precise citations. This MCP server gives your AI assistant direct access to that knowledge.

Tools

Tool

Description

Tokens

search

Hybrid search with citations and relevance scores

~200/result

get_document_toc

Lightweight table of contents for a document

~50

get_sections

Load specific sections by chunk ID (max 50)

varies

list_collections

Browse or search available knowledge collections

~100/collection

get_document_full

Full markdown content of a document

varies (can be large)

Recommended workflow: search or list_collections to find content, then get_document_toc for structure, then get_sections for specific passages. Use get_document_full only when you need the complete text.

Related MCP server: mcp-rag-server

Prerequisites

  1. Python 3.11+ installed

  2. Point API key — get one free at pinchpoint.dev/point/keys

Installation

pip install point-mcp

Or install from source:

git clone https://github.com/mcdonaldsam/point-mcp.git
cd point-mcp
pip install -e .

Setup by IDE

Claude Code

Add to your Claude Code MCP settings (~/.claude/settings.json or project .claude/settings.json):

{
  "mcpServers": {
    "point": {
      "command": "point-mcp",
      "env": {
        "POINT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Or add via CLI:

claude mcp add point -- point-mcp -e POINT_API_KEY=your-api-key-here

Cursor

Add to your Cursor MCP config (~/.cursor/mcp.json):

{
  "mcpServers": {
    "point": {
      "command": "point-mcp",
      "env": {
        "POINT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Windsurf

Add to your Windsurf MCP config (~/.windsurf/mcp.json):

{
  "mcpServers": {
    "point": {
      "command": "point-mcp",
      "env": {
        "POINT_API_KEY": "your-api-key-here"
      }
    }
  }
}

VS Code (GitHub Copilot)

Add to your VS Code settings (.vscode/mcp.json in your project, or user settings):

{
  "servers": {
    "point": {
      "type": "stdio",
      "command": "point-mcp",
      "env": {
        "POINT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Using uvx (no install needed)

If you have uv installed, you can run point-mcp without installing it globally:

{
  "mcpServers": {
    "point": {
      "command": "uvx",
      "args": ["point-mcp"],
      "env": {
        "POINT_API_KEY": "your-api-key-here"
      }
    }
  }
}

Manual / Other Tools

Any MCP client that supports stdio transport:

POINT_API_KEY=your-api-key-here point-mcp

Configuration

Environment Variable

Required

Default

Description

POINT_API_KEY

Yes

Your Point API key (get one)

POINT_API_URL

No

https://point-api.pinchpoint.dev

API base URL (for self-hosted or local dev)

Examples

Once configured, your AI assistant can use Point tools naturally:

"Search Point for how OAuth 2.0 PKCE works"

"What collections does Point have about cloud infrastructure?"

"Get the table of contents for document rfc-7636, then load sections 2 and 3"

The assistant will automatically use the appropriate tools and include citations in its responses.

Development

# Clone and install with dev dependencies
git clone https://github.com/mcdonaldsam/point-mcp.git
cd point-mcp
pip install -e ".[dev]"

# Run tests
pytest

# Run server locally
POINT_API_KEY=your-key point-mcp

License

MIT

Available Tools

5 tools
get_document_fullA

Get the full markdown content of a document.

WARNING: This can be large (thousands of tokens). Prefer get_document_toc + get_sections for targeted retrieval. Use this only when you need the complete text.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesDocument ID (from search results or collection listings)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 bears full burden. It discloses that content can be large (thousands of tokens) and advises caution. However, it could explicitly state it's a read-only operation, though implied by 'get'.

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: one for purpose, one for warning. No fluff, front-loaded with key information. Every sentence earns its place.

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?

Given output schema exists (context indicates true), description needn't cover return values. The description fully addresses usage, warnings, and purpose, making it complete for a retrieval tool.

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?

Input schema has 1 parameter (doc_id) with description, and schema coverage is 100%. The description adds no extra parameter details beyond the schema, but baseline 3 applies as schema handles it well.

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?

Description clearly states it gets the full markdown content of a document, with a verb and resource. It distinguishes from siblings by naming alternatives (get_document_toc + get_sections) and warns about size, making the purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly states when to use (complete text needed) and when not (prefer targeted retrieval via TOC+sections). Includes a warning about large size, guiding the agent to consider alternatives.

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

get_document_tocA

Get a lightweight table of contents for a document (~50 tokens).

Use this to understand document structure before loading specific sections. Returns chunk IDs that you can pass to get_sections.

ParametersJSON Schema
NameRequiredDescriptionDefault
doc_idYesDocument ID (from search results or collection listings)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses the lightweight nature (~50 tokens) and that it returns chunk IDs. While it could detail permissions or rate limits, the behavioral impact is minimal for a read operation.

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?

Three sentences, front-loaded with the action, and every sentence adds unique value (purpose, usage hint, output description). No fluff.

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?

Given the presence of an output schema (noted in context signals), the description covers the key aspects: what the tool does, when to use it, what it returns, and how it relates to siblings. Fully sufficient for effective tool selection.

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 coverage is 100%, so baseline 3. The description does not add info beyond the schema's existing description for 'doc_id', which already explains the source.

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 'Get a lightweight table of contents' which is specific and actionable. Distinguishes from siblings like get_document_full (full document) and get_sections (specific sections) by noting it returns chunk IDs for use with get_sections.

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?

Explicitly instructs to 'Use this to understand document structure before loading specific sections,' providing clear context. Implicitly suggests not to use when full content is needed, and links to get_sections as a follow-up.

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

get_sectionsA

Load specific document sections by their chunk IDs (max 50 per request).

Use after search or get_document_toc to retrieve full text of specific passages. Each section includes its text, heading path, word count, and citation.

ParametersJSON Schema
NameRequiredDescriptionDefault
chunk_idsYesList of chunk IDs to load (get these from search results or TOC). Max 50 per request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/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. Discloses max 50 per request limit and what each section includes. Could mention read-only nature or error behavior, but sufficient for a read operation.

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?

Three sentences with no waste. Front-loaded with purpose, then usage context, then return content. Every sentence earns its place.

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?

With output schema present, description need not detail return values. It covers usage context, limit, and content. Complete for a single-parameter tool.

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

Parameters5/5

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

Schema coverage is 100% with description of chunk_ids as 'List of chunk IDs to load (get these from search results or TOC). Max 50 per request.' Description adds context beyond schema: source of IDs and limit, enhancing meaning.

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 'Load specific document sections by their chunk IDs', a specific verb and resource. Differentiates from siblings by specifying use after search or get_document_toc, and implies it is for specific passages not full document or TOC.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'Use after search or get_document_toc'. Implies not to use for full document (get_document_full) or TOC (get_document_toc), providing clear context and alternatives.

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

list_collectionsA

Browse or search available knowledge collections.

Without a query, lists all collections with document counts. With a query, performs semantic search to find relevant collections.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional search query to find relevant collections (e.g. "machine learning frameworks"). Omit to list all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, but the description fully discloses the two behavioral modes (list all vs. semantic search) and implies read-only operation. It does not cover rate limits or auth, but for a simple browsing tool this is adequate.

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 two short paragraphs with no wasted words. The front-loaded summary ('Browse or search available knowledge collections') immediately conveys the overall purpose, and the mode details are efficiently presented.

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?

Given the tool's simplicity (1 optional parameter, output schema present), the description fully covers the tool's functionality. It explains both modes clearly, and the output schema handles return value details.

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?

The input schema has 100% coverage and describes the 'query' parameter. The description adds value beyond the schema by explaining how the parameter's presence or absence changes the tool's behavior (list all vs. search).

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 browses or searches collections, and differentiates between listing all collections (without query) and semantic search (with query). This distinguishes it from sibling tools like 'search' which does full-text document search.

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 explicitly states when to use each mode (with or without query). While it does not mention explicit when-not-to-use scenarios, the context of sibling tools implies appropriate usage. A slight improvement would be to contrast with 'search' for document-level queries.

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. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedget_document_full
    • First observedget_document_toc
    • First observedget_sections
    • First observedlist_collections
    • First observedsearch

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a distinct purpose: full document retrieval, table of contents, section loading, collection listing, and search. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_document_full, get_document_toc, get_sections, list_collections, search). Even 'search' fits as a verb with an implied object.

Tool Count5/5

With 5 tools, the server is well-scoped for knowledge base retrieval. It is neither too sparse nor too heavy.

Completeness5/5

The tool set covers all necessary operations for a read-only knowledge base: browsing collections, searching, getting document structure, and retrieving full or partial content. No gaps for its stated purpose.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server implementation that provides tools for retrieving and processing documentation through vector search, enabling AI assistants to augment their responses with relevant documentation context
    22
    265
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that indexes documents and serves relevant context to LLMs via Retrieval Augmented Generation (RAG).
    48
    37
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that gives AI coding assistants access to up-to-date API documentation via RAG by crawling documentation sites, indexing them into a vector store, and enabling semantic queries.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mcdonaldsam/point-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server