Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Google Scholar search results, citation counts and citation export formats, as structured JSON.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
HASDATA_API_KEY, x-api-keyค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"google-scholar": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-scholar-mcp"
],
"env": {
"HASDATA_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http google-scholar 'https://mcp.hasdata.com/mcp?apis=google_scholar' --header 'x-api-key: ใส่ค่าของคุณ'claude mcp add google-scholar --env HASDATA_API_KEY='ใส่ค่าของคุณ' -- npx -y @hasdata/google-scholar-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"google-scholar": {
"url": "https://mcp.hasdata.com/mcp?apis=google_scholar",
"headers": {
"x-api-key": "ใส่ค่าของคุณ"
}
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"google-scholar": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-scholar-mcp"
],
"env": {
"HASDATA_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"google-scholar": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_scholar",
"headers": {
"x-api-key": "ใส่ค่าของคุณ"
}
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"google-scholar": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/google-scholar-mcp"
],
"env": {
"HASDATA_API_KEY": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
x-api-key ความลับ จำเป็น HTTP headerค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน hasdata.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: HASDATA_API_KEY, x-api-key
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.2) เข้า registry 43 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A hosted Google Scholar MCP server that gives Claude, Cursor, Windsurf and any other MCP client two read-only Google Scholar tools. Search the literature with Scholar's own operators, year ranges and cited-by lookups, then pull a paper's citation in five styles with its BibTeX and EndNote export links, both as structured JSON, with nothing to host.
It reads public Google Scholar pages that a signed-out visitor can see.
1,000 free credits every month, no card required, which is 100 Scholar calls at the 10-credit rate.
https://mcp.hasdata.com/mcp?apis=google_scholar
An MCP client and a HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 calls a month at the 10-credit rate. This is a remote server, so the simplest path is a URL and an x-api-key header, with no container to run. A client that only speaks stdio reaches it through a thin launcher, published as @hasdata/google-scholar-mcp on npm and hasdata-google-scholar-mcp on PyPI, shown below.
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
| Field | Value |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=google_scholar |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
Claude Code
claude mcp add --transport http google-scholar "https://mcp.hasdata.com/mcp?apis=google_scholar" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/mcp?apis=google_scholar and sign in.
For the config-file route, Claude Desktop loads only local (stdio) servers, so it reaches a remote server through a stdio launcher. The @hasdata/google-scholar-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:
{
"mcpServers": { "google-scholar": { "command": "npx", "args": ["-y", "@hasdata/google-scholar-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
For Python instead of Node, swap the launcher for the PyPI package, which uvx runs without a manual install:
{
"mcpServers": { "google-scholar": { "command": "uvx", "args": ["hasdata-google-scholar-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
Cursor
~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": { "google-scholar": { "url": "https://mcp.hasdata.com/mcp?apis=google_scholar", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Windsurf
~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:
{
"mcpServers": { "google-scholar": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=google_scholar", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
VS Code
.vscode/mcp.json in the workspace:
{
"servers": { "google-scholar": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=google_scholar", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Each of these lands on one tool, or on two in sequence when the second needs an id the first returns.
A prompt naming a paper takes two calls, one search to reach its resultId and one citation lookup. A prompt about who cites a paper also takes two, because the second call reuses citedBy.citesId from the first.
| Tool | What it returns |
|---|---|
hasdata_google_scholar_case_law_getScholarCaseLawOpinion | One court opinion with its court, reporter citation, docket numbers, argued and decided dates, and every case it cites with its own caseId. 10 credits a call |
hasdata_google_scholar_cite_getScholarCitationFormats | Formatted citation snippets (MLA, APA, Chicago, Harvard, Vancouver) and reference-manager export links (BibTeX, EndNote, RefMan, RefWorks). 10 credits a call |
hasdata_google_scholar_scholar_getScholarSearchResults | Each organic result with title, link, snippet, publication info (authors with profile links), cited-by count and link, related-articles link, and all-versions count and…. 10 credits a call |
Three tools, 10 credits per successful call.
hasdata_google_scholar_scholar_getScholarSearchResults
A page of Scholar results.
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | The query. Scholar operators such as author: and source: work here |
asYlo / asYhi | number | Published from and up to these years | |
start | number | Result offset, where 0 is the first result | |
num | number | Results per page | |
scisbd | number | 1 sorts abstracts by date, 2 sorts everything by date. Omit for relevance | |
cites | string | Find articles citing this one, using a citedBy.citesId | |
cluster | string | Find every indexed version of an article, using a versions.clusterId | |
asSdt | string | Search type, 0,5 for articles, 4 for case law, 0 or 7 for patents | |
asRr | number | 1 returns review articles only | |
asVis | number | 1 excludes citations, 0 includes them | |
hl | string | Interface language, one of 159 | |
lr | array | Restrict to these content languages | |
safe | string | active or off | |
filter | number | 1 keeps Google's similar and omitted result filters, 0 drops them |
Returns searchInformation with totalResults, queryDisplayed and the time Scholar reported, an organicResults array, and pagination.
Each result carries position, resultId, title, link, snippet, a publicationInfo object, a resources array, citedBy, versions, relatedPagesLink and citeHasdataLink.
publicationInfo.authors is the part worth knowing about. Alongside the raw summary line it lists the authors Scholar has profiles for, each with a name, a profile link and an authorId, which is how you follow one author rather than parsing a byline.
citedBy and versions are the two ids that make this tool compose with itself. citedBy.citesId goes back into cites to walk a citation graph, and versions.clusterId goes into cluster to see every indexed copy of the same paper.
{
"position": 1, "resultId": "A7L9JolPKkoJ", "title": "A historical survey of advances in transformer architectures", "link": "https://www.mdpi.com/2076-3417/14/10/4316", "snippet": "… of the Vision Transformer (ViT) opening a new realm of architectures which build … transformer architecture, it becomes pertinent to examine in detail the architecture of the transformer …", "publicationInfo": { "summary": "AR Sajun, I Zualkernan, D Sankalpa - Applied Sciences, 2024 - mdpi.com", "authors": [ { "name": "AR Sajun", "authorId": "k6zWX4EAAAAJ", "link": "https://scholar.google.com/citations?user=k6zWX4EAAAAJ&hl=en" } ] }, "resources": [{ "fileFormat": "Html", "title": "mdpi.com", "link": "https://www.mdpi.com/2076-3417/14/10/4316" }], "citedBy": { "total": 97, "citesId": "5344171358311789059" }, "versions": { "total": 7, "clusterId": "5344171358311789059" } }
hasdata_google_scholar_cite_getScholarCitationFormats
The citation block for one paper.
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | A resultId from a search result, not a search query |
hl | string | Interface language |
Returns citations, the formatted string in MLA, APA, Chicago, Harvard and Vancouver, and links, the export URLs for BibTeX, EndNote, RefMan and RefWorks.
{
"citations": [ { "title": "APA", "snippet": "Sajun, A. R., Zualkernan, I., & Sankalpa, D. (2024). A historical survey of advances in transformer architectures. Applied Sciences, 14(10), 4316." } ], "links": [ { "name": "BibTeX", "link": "https://scholar.googleusercontent.com/scholar.bib?q=info:A7L9JolPKkoJ:scholar.google.com/&output=citation..." } ] }
hasdata_google_scholar_case_law_getScholarCaseLawOpinion
One court opinion, with the cases it cites.
| Parameter | Type | Required | Notes |
|---|---|---|---|
caseId | string | yes | A caseId from a case-law search result, not a search query |
hl | string | Interface language |
The id comes from the search tool rather than from a URL. Set asSdt to a case-law court scope, for example 4, and every organic result then carries caseId beside caseHasdataLink.
Returns caseResults with title, name, courtName, cert, and the firstPage and lastPage of the printed opinion. dates holds the argued and decided dates as separate entries, `s
ตัดมาแค่ช่วงต้น อ่านต่อใน repo