SafeToClone
Server Details
Safety grade (A to F) for any public GitHub repo, in plain English, before you install it.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
The four tools mostly target distinct actions: checking a repo for safety, retrieving cached safety grades, and two Instagram post retrieval modes. However, check_repo and get_safety_scores both deal with safety grades and could be confused, while get_next_post and list_upcoming_posts overlap in returning upcoming posts.
All tool names follow a consistent snake_case verb_noun pattern: check_repo, get_next_post, get_safety_scores, list_upcoming_posts. The verbs vary appropriately by action (check, get, list) without breaking the convention.
With only four tools, the set is tightly scoped to the server's apparent purpose: safety checking for GitHub repos and retrieving approved Instagram posts. Each tool has a clear role and the count stays well within the ideal 3–15 range.
The surface covers the main read-only workflows: ad-hoc repo safety checks, cached safety grades for popular AI tools, and upcoming Instagram posts. Minor gaps exist, such as fetching historical posts or drilling into full safety report details beyond the provided link, but agents can work around them.
Available Tools
4 toolscheck_repoARead-onlyInspect
Check whether a GitHub repo is safe before installing, cloning or running it. Call it whenever the user shares a GitHub link, or asks to install a tool, app, MCP server, Claude skill or plugin from GitHub. Works for any public repo. Returns an A to F grade, a one-sentence summary to tell the user, a recommendation (install, install_with_care, ask_first, only_if_trusted, do_not_install), the warning signs and a link to the full report.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | A GitHub link like https://github.com/owner/name, or just owner/name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses what comes back: an A–F grade, a one-sentence user-facing summary, a recommendation from a fixed set of five values, warning signs, and a report link. That is real value for a tool with no output schema, especially the enumerated recommendation vocabulary. It omits operational context such as rate limits, latency, or whether private repos are handled differently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each doing distinct work: purpose, trigger conditions, and return payload. The action-relevant purpose is front-loaded and the return-value list is compact rather than prose-heavy. No filler or repeated framing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the description covers purpose, trigger conditions, supported scope, and expected return fields including the recommendation enum. An agent could decide to call it and interpret the response without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single `repo` parameter, and the schema already shows both accepted forms (URL or owner/name). The description adds only the scope constraint "works for any public repo," which is useful but not a syntax or format clarification. Baseline 3 is appropriate when the schema carries the parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource with scope: "Check whether a GitHub repo is safe before installing, cloning or running it." That is far more than a restatement of the name, and the domain (GitHub repo safety) is clearly distinct from the post/scheduling siblings. It stops short of a 5 because it never addresses the nearest-sounding sibling, get_safety_scores, leaving the agent to infer the boundary from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete triggering conditions: call it whenever the user shares a GitHub link, or asks to install a tool, app, MCP server, Claude skill or plugin from GitHub. That covers a wide range of realistic prompts. It gives no explicit when-not or prerequisite guidance (e.g. private repos, non-GitHub sources) and names no alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_next_postAInspect
Get the next approved SafeToClone Instagram post: the one dated today, or the next one coming up. The website posts it by itself at its time, so don't publish it. Returns the date, the time (Ottawa) it goes out, the image URL (image_urls has every slide when the post is a carousel), the caption and the image alt text.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does well: it discloses that the tool is read-only in effect, that publication happens externally on a schedule, and that the agent must not publish. It also documents return content including the Ottawa timezone and carousel handling for image_urls. Auth requirements, rate limits, and the empty/no-upcoming-post case are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: selection rule first, the critical don't-publish caveat second, return fields third. Nothing is redundant, though the return-field sentence is a dense run-on list that could be split for scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input params and no output schema, the description must carry both the selection logic and the return shape, and it does both, including timezone and carousel detail. The main omission is behavior when no post qualifies (empty result vs. error), which an agent needs before calling this in a loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description spends its words on the return payload instead, which is the right allocation given an empty input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get the next approved SafeToClone Instagram post") and pins down the selection rule exactly: "the one dated today, or the next one coming up." An agent knows precisely which record it gets. It does not name the sibling list_upcoming_posts, so the boundary with that tool must be inferred from the singular vs. plural framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear operating context and one explicit exclusion: "The website posts it by itself at its time, so don't publish it" tells the agent this is a read/prep step, not a publish step. It stops short of routing to alternatives, so an agent wanting multiple future posts is not explicitly pointed at list_upcoming_posts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_safety_scoresAInspect
Get the latest SafeToClone safety grades (A to F) for popular AI tools on GitHub. Use it to answer questions in comments or DMs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose useful scope information: grades are letter-graded A-F, they are 'latest' (so freshness is defined), and coverage is limited to 'popular AI tools' rather than arbitrary repos. It omits read-only safety framing, caching or rate-limit behavior, and what happens for an unknown tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the data description before the usage note. No filler. The second sentence is mildly extraneous relative to the core definition but still earns a small amount of routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No parameters, no output schema, no annotations means the description must pin down what is returned. It says 'latest grades for popular AI tools' but never clarifies whether the response is a full list of graded tools, whether a specific tool is named, or how coverage is decided. For a parameterless tool the result shape is the entire contract, and it is left partly implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies a fixed, unfiltered result set and adds the grade scale, which is the only semantic content parameters could have carried here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb-plus-resource: 'Get the latest SafeToClone safety grades (A to F) for popular AI tools on GitHub.' An agent knows exactly what data comes back in kind. It does not, however, distinguish itself from the sibling check_repo, which plausibly covers overlapping repo-inspection territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'Use it to answer questions in comments or DMs' gives a situational hint, but it is about channel, not tool choice. There is no statement of when check_repo is the better call or what to do when a tool is not in the 'popular' set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_upcoming_postsAInspect
List every approved SafeToClone Instagram post dated today or later, in order. The website posts them by itself.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden. It does useful work by implying a read-only listing, promising result ordering, and clarifying via "The website posts them by itself" that invoking this tool does not publish anything. It leaves unstated what "approved" means, whether results are paginated, and what each post entry contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, front-loaded with the action and scope. The final sentence about the website posting on its own earns its place by removing a likely agent misconception.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless list tool this covers scope and ordering adequately, but with no output schema the description should hint at what a post record contains and whether the list can be large. Those gaps keep it at minimum-viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate beyond the implicit filter, which it does state clearly (approved, today or later). Baseline 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List ... Instagram post") plus the filtering scope (approved, dated today or later) and ordering guarantee. The agent can distinguish this from get_next_post only by inference, since no sibling is named explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the "today or later" filter and the note that the website publishes on its own suggest this is for inspection, not scheduling. There is no explicit when-to-use/when-not-to-use guidance and no reference to get_next_post as the single-item alternative.
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.
4 tool updates
- First observed
check_repo - First observed
get_next_post - First observed
get_safety_scores - First observed
list_upcoming_posts
Related MCP Connectors
Audit GitHub repos for malicious and supply-chain code before you depend on them.
Evaluates any GitHub repository for license risk, maintenance velocity, stars/forks, and security.
Evaluates any GitHub repository for license risk, maintenance velocity, stars/forks, and supply-c.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Related MCP Servers
- AlicenseAqualityAmaintenanceScores npm packages, PyPI packages and GitHub repositories 0-100 with an A-F grade and plain-language risks. Scans package.json, requirements.txt and lock files; no API key needed.373 npm1Apache 2.0
- AlicenseAqualityCmaintenanceSupply chain risk scoring for npm, PyPI, and GitHub repos8206 npm9MIT
- AlicenseAqualityBmaintenanceEnables AI agents and developers to score npm packages, PyPI packages, and GitHub repositories for maintenance health, producing A–F grades, per-signal details, and plain-language risk lists before adoption. It supports checking individual packages, scanning manifests or lock files for transitive dependencies, and comparing alternatives.373 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceAudits npm packages for supply-chain attacks (typosquatting, malicious install scripts, credential exfiltration) before installation, returning a SAFE/SUSPICIOUS/DANGEROUS verdict.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.