Hạ tầng tìm kiếm hình ảnh cho AI Agent: Thị trường thực sự cung cấp gì
Getty vừa ra mắt một MCP server trong tháng này; các thư viện ảnh miễn phí thì chưa hề có. Một benchmark có thể tái lập, một cuộc thống kê registry, và điều khoản của bốn API ảnh lớn — đọc như thể bạn chính là cỗ máy phải tuân theo chúng.
Mọi framework agent ra mắt năm nay đều có thể viết, lập kế hoạch, gọi công cụ và mở một pull request. Nhưng hãy thử yêu cầu nó tìm một bức ảnh, cả hệ thống sẽ tụt xuống mức chỉ biết nhún vai: một URL stock được bịa ra từ trí nhớ, một liên kết hỏng, hoặc một ảnh được tạo sinh vì tìm một ảnh thật khó hơn là tự tạo ra một ảnh. Mô hình không phải là mắt xích yếu. Lớp truy xuất ảnh bên dưới nó mới là mắt xích yếu — và nó thiếu theo một cách rất cụ thể, có thể đo lường được.
Đây là một nghiên cứu thị trường, không phải một tuyên ngôn. Mọi thứ dưới đây đều được đo lường hoặc đọc từ nguồn gốc vào ngày 18 tháng 8 2026: một cuộc kiểm tra toàn diện registry MCP chính thức, các điều khoản đã công bố của bốn API ảnh miễn phí lớn, điều kiện truy cập của hai đơn vị trả phí đã ra mắt connector agent trong tháng này, và một benchmark nhỏ có thể tái lập được, chạy lại trong một phút mà không cần API key.
Một ranh giới, để bạn có thể dừng đọc sớm nếu đây không phải câu hỏi của bạn: bài viết này nói về
lớp truy cập — truy xuất, khả năng tiếp cận, điều khoản, hạn mức. Đây không phải
quy trình xuất bản. Nếu điều bạn cần là làm sao biến một bản nháp thành các trang có minh họa, có
ghi công, có markup — prompt định tuyến, các brief hình ảnh, khâu lắp ráp, markup
ImageObject — thì điều đó được viết riêng trong
quy trình minh họa các
bài viết do AI tạo ra.
Điều gì thay đổi khi bên gọi là một cỗ máy
Một con người tìm ảnh gõ hai ba từ, lướt qua một lưới ảnh, và biết đâu là ảnh đẹp khi nhìn thấy nó. Mọi công cụ tìm kiếm stock từng được xây dựng đều giả định vòng lặp đó. Một agent phá vỡ cả ba giả định cùng lúc:
- Nó viết câu văn, không phải từ khóa. Một mô hình vừa soạn xong một đoạn về
giấy tờ vay thế chấp sẽ không tạo ra
mortgage; nó tạo ra “một người phụ nữ ký giấy tờ vay thế chấp trên bàn bếp trong khi một nhân viên tư vấn ngân hàng giải thích các điều khoản”. Đó là đầu ra tự nhiên của một mô hình ngôn ngữ, và đó cũng chính là thứ mà một chỉ mục khớp token không thể phục vụ. - Nó không thể lướt qua một lưới ảnh. Bất cứ thứ gì công cụ trả về chính là những gì agent biết. Nếu phản hồi là một danh sách URL không có mô tả, kích thước hay thông tin ghi công, agent phải tải và xem xét từng ảnh — hoặc, phổ biến hơn nhiều, phải đoán.
- Nó không có tay. Nó không thể tải ảnh chụp màn hình lên hàng đợi xét duyệt, chấp nhận điều khoản, xoay vòng key, hay chờ ba ngày làm việc để được phê duyệt production. Mỗi bước cần con người trong quy trình onboarding của một API là một bức tường mà agent dừng lại trước nó.
Vì vậy “hạ tầng tìm kiếm ảnh cho agent AI” không phải là một cụm từ tiếp thị. Đó là một danh sách kiểm tra: truy xuất bằng ngôn ngữ tự nhiên, kết quả đọc được bằng máy đủ phong phú để suy luận, và một mô hình xác thực cùng hạn mức mà một chương trình có thể tự hoàn tất.
Bài kiểm tra: một câu văn đối đầu với một chỉ mục từ khóa
Cách rẻ nhất để thấy vấn đề là gửi chính lời văn của một agent tới một công cụ khớp từ khóa. Bài kiểm tra dưới đây dùng Openverse, công cụ tìm kiếm media cấp phép mở do WordPress.org vận hành, vì API của nó công khai, không cần key, và bất cứ ai đọc bài này cũng có thể chạy lại trong chưa đầy một phút. Bốn brief, kiểu mà một mô hình viết khi đang minh họa cho chính đoạn văn nó vừa soạn:
import json, urllib.request, urllib.parse
BRIEFS = [
"a woman signing a mortgage document at a kitchen table while a bank"
" adviser explains the terms, warm morning light",
"An elderly couple enjoying a peaceful retirement together",
"a child discovering snow for the first time in a suburban garden",
"a delivery cyclist waiting at a red light in heavy rain",
]
def count(q):
u = "https://api.openverse.org/v1/images/?" + urllib.parse.urlencode({"q": q})
r = urllib.request.Request(u, headers={"User-Agent": "benchmark/1.0"})
return json.load(urllib.request.urlopen(r))["result_count"]
for b in BRIEFS:
print(count(b), "|", b[:48])
# 0 | a woman signing a mortgage document at a kitchen
# 0 | An elderly couple enjoying a peaceful retirement
# 0 | a child discovering snow for the first time in a
# 0 | a delivery cyclist waiting at a red light in hea
Bốn brief, bốn tập kết quả trống. Giờ rút mỗi brief xuống còn hai từ khóa mà một con người sẽ gõ
— signing document, elderly couple, child snow,
cyclist rain — và mỗi truy vấn đều trả về trọn một trang ảnh (API báo cáo 240, đây
là mức API giới hạn số đếm cho các lệnh gọi ẩn danh). Kho ảnh có sẵn những bức hình đó. Câu văn
mới là thứ nó không thể phân tích được.
| Brief mà một agent thực sự viết | Công cụ từ khóaOpenverse, cả câu | Công cụ từ khóarút còn 2 từ khóa | Công cụ ngữ nghĩaPexafy, cả câu |
|---|---|---|---|
| “a woman signing a mortgage document at a kitchen table while a bank adviser explains the terms…” | 0 kết quả | 240 (đạt trần) | 16 kết quả · 148 ms |
| “An elderly couple enjoying a peaceful retirement together” | 0 kết quả | 240 (đạt trần) | 16 kết quả · 135 ms |
| “a child discovering snow for the first time in a suburban garden” | 0 kết quả | 240 (đạt trần) | 16 kết quả · 147 ms |
| “a delivery cyclist waiting at a red light in heavy rain” | 0 kết quả | 240 (đạt trần) | 16 kết quả · 149 ms |
Cột Pexafy là bốn câu văn y nguyên đó, được gửi thẳng tới search_photos trên máy chủ
MCP được lưu trữ, kèm độ trễ do chính máy chủ báo cáo. Đây là một so sánh về hình dạng
truy vấn, không phải về chất lượng kho ảnh — và kho ảnh dứt khoát không phải là vấn đề.
Endpoint thống kê riêng của Openverse báo cáo 915 triệu ảnh từ 52 nguồn vào ngày
thử nghiệm, và nó rất xuất sắc trong đúng việc nó được xây dựng để làm: tìm kiếm theo từ khóa,
cho con người. Không có gì bị hỏng ở đây cả. Nó chỉ đơn giản là chưa bao giờ được thiết kế cho
một bên gọi tư duy bằng câu văn. Vì sao việc khớp thẻ (tag) lại thất bại trước một cảnh
được mô tả — và truy xuất ngữ nghĩa làm gì thay thế — được lập luận từ góc nhìn người đọc trong
tìm kiếm bằng một câu
văn thay vì từ khóa; điều mới ở đây là phép đo lường, và ý nghĩa của nó khi bên gọi là một
chương trình chứ không phải một con người.
Thị trường, tính đến ngày 18 tháng 8 năm 2026
Truy xuất chỉ là một nửa. Nửa còn lại là khả năng tiếp cận: liệu một agent có thể chạm tới kho ảnh hay không, và với những điều kiện nào? Kể từ khi Model Context Protocol trở thành cách các trợ lý gắn kết với các hệ thống bên ngoài — đặc tả hiện hành của nó, đề ngày 28 tháng 7 2026, đã chuyển giao thức sang một lõi request/response không trạng thái để các máy chủ có thể đứng sau các bộ cân bằng tải thông thường1 — cách trung thực để khảo sát thị trường này là nhìn vào những gì thực sự được công bố, chứ không phải những gì được tuyên bố.
Các đơn vị trả phí lâu năm đã tham gia trong tháng này
Getty Images ra mắt máy chủ MCP vào ngày 12 tháng 8 2026, sáu ngày trước bài viết này, mở khả năng tìm kiếm và tải xuống nội dung sáng tạo, tin tức và lưu trữ cho các quy trình AI.2 Nó nhắm tới các đội ngũ doanh nghiệp và người xây dựng nền tảng, và trang truy cập của chính họ nói rõ ràng về mức giá đầu vào: bạn cần một hợp đồng Getty Images đang hoạt động, chẳng hạn như Premium Access, cộng với việc chấp nhận điều khoản Web Service. Không có gói miễn phí. Shutterstock cũng có thể truy cập qua một máy chủ MCP — 24 công cụ bao gồm tìm kiếm, bộ sưu tập và cấp phép — với việc tải xuống bị khóa sau một tài khoản có gói đăng ký đang hoạt động.3
Cả hai động thái đều hợp lý, và cả hai đều nhắm tới một khách hàng cụ thể. Getty ghi nhận doanh thu 981,3 triệu USD năm 20254 trong một thị trường ảnh stock có quy mô khoảng 5,4 tỷ USD cho năm 20265; các connector yêu cầu hợp đồng bảo vệ doanh thu đó thay vì mở rộng nó. Nếu bạn là một ngân hàng hay một đài truyền hình, đây chính xác là những gì bạn muốn. Nếu bạn là một nhà phát triển đang nối dây cho một dự án phụ — hay một agent không được phép dừng lại và nhờ con người ký kết gì đó — đây là một cánh cửa đóng.
Các thư viện miễn phí chưa ra mắt được cái nào cả
Unsplash, Pexels và Pixabay là ba kho ảnh mà hầu hết các nhà phát triển tìm đến, và không có thư viện nào trong số đó công bố một máy chủ MCP chính thức. Thay vào đó là cả một kệ đầy các wrapper cộng đồng. Chúng tôi đã thu thập toàn bộ registry MCP chính thức — 22.607 máy chủ, 75.487 phiên bản đã công bố — và giữ lại mọi mục có tên hoặc mô tả liên quan tới tìm kiếm ảnh hoặc ảnh stock. Khuôn mẫu là đồng nhất:
| Registry MCP chính thức, 18 tháng 8 2026 | Số lượng | Ý nghĩa đối với một agent |
|---|---|---|
| Máy chủ được liệt kê trong registry, mọi hạng mục | 22.607 | Toàn bộ hệ sinh thái mà một agent có thể lấy công cụ từ đó |
| Máy chủ khớp với photo / image / stock / picture và tên các thư viện | 137 | Phần lớn là công cụ chỉnh sửa, tạo sinh hoặc công cụ ảnh cá nhân, không phải tìm kiếm |
| …thực sự tìm kiếm ảnh stock hoặc ảnh cấp phép miễn phí | 11 | Toàn bộ kệ hàng có thể tiếp cận |
| …do chính Unsplash, Pexels, Pixabay hay Openverse công bố | 0 | Mỗi cái đều là wrapper bên thứ ba; một cái được gắn nhãn “Không chính thức” ngay trong mô tả của chính nó |
| …chạy cục bộ và yêu cầu API key bên thứ ba của bạn | 7 | UNSPLASH_ACCESS_KEY, PEXELS_API_KEY, PIXABAY_API_KEY… một con người phải lấy từng key một trước |
| …có thể tiếp cận dưới dạng máy chủ từ xa được lưu trữ | 4 | Cả bốn đều là các cổng đơn-nguồn từ một nhà vận hành bên thứ ba, đứng trước cùng các API từ khóa |
| Mục dành cho Getty hoặc Shutterstock | 0 | Máy chủ của họ có tồn tại, nhưng được phân phối bên ngoài registry công khai, chỉ tới các chủ tài khoản |
import json, urllib.request, urllib.parse
def crawl(term): # registry phân trang bằng `nextCursor`
out, cursor = {}, None
while True:
p = {"limit": "100", "search": term} | ({"cursor": cursor} if cursor else {})
d = json.load(urllib.request.urlopen(
"https://registry.modelcontextprotocol.io/v0/servers?" + urllib.parse.urlencode(p)))
for e in d["servers"]: out[e["server"]["name"]] = e["server"]
cursor = (d.get("metadata") or {}).get("nextCursor")
if not cursor or not d["servers"]: return out
servers = {}
for t in ["photo", "image", "stock", "picture", "unsplash",
"pexels", "pixabay", "getty", "shutterstock", "openverse"]:
servers |= crawl(t)
# 137 máy chủ duy nhất · remote hay local nằm ở `server["remotes"]`
# các key bên thứ ba bắt buộc nằm trong packages[].environmentVariables
Mỗi wrapper đó chỉ là một client mỏng của cùng ba API từ khóa, nghĩa là benchmark ở trên áp dụng cho tất cả chúng: lớp vận chuyển thay đổi, nhưng khâu truy xuất thì không. Một wrapper không thể khiến một chỉ mục theo thẻ hiểu được một câu văn.
Điều khoản chặn đứng một cỗ máy không phải là hạn mức
Hạn mức và điều khoản của các thư viện miễn phí được so sánh cạnh nhau, trong một đơn vị chung, ở bài so sánh API ảnh stock miễn phí — hàng đợi xét duyệt, lệnh gọi tải xuống bắt buộc, nghĩa vụ cache 24 giờ, các quy tắc ghi công. Bài viết đó đọc chúng theo góc nhìn của một nhà phát triển đang chọn nhà cung cấp. Đọc lại chúng như là chương trình phải tuân theo, và một dòng nổi bật lên hoàn toàn không liên quan đến khối lượng:
Trường truy vấn của Pixabay chấp nhận 100 ký tự. Bốn brief trong benchmark ở trên trung bình dài 72 ký tự, và brief về vay thế chấp lên tới 114 — nó sẽ bị từ chối thẳng thừng, chứ không phải xếp hạng kém. Pexels và Unsplash không công bố giới hạn độ dài vì họ chưa bao giờ nghĩ cần đến điều đó: ví dụ tài liệu của họ là Ocean, Tigers, Pears. Một trường dữ liệu được cỡ hóa cho hai từ là một tuyên bố về việc bên gọi được kỳ vọng là ai, và không hạn mức nào khắc phục được điều đó. Endpoint ngữ nghĩa mà một agent nói chuyện cùng chấp nhận 500 ký tự, vì mệnh đề đuôi — “…while a bank adviser explains the terms” — chính là phần khiến việc truy xuất trở nên tốt.
Cách đọc tương tự áp dụng cho khâu onboarding. Một tầng dùng thử chỉ trở thành production sau khi một con người xét duyệt ảnh chụp màn hình ứng dụng của bạn không phải là một giới hạn tốc độ mà một agent có thể lùi lại; đó là một bước mà nó không thể thực hiện được chút nào. Pixabay nêu rõ ý định — API này dành cho việc sử dụng hợp pháp của con người, và việc tải xuống hàng loạt tự động bị cấm. Không điều nào trong số này là vô lý: các nhiếp ảnh gia tặng miễn phí tác phẩm của họ và có ai đó phải trả tiền băng thông. Nó chỉ đơn giản là mô tả một API mà bên gọi được giả định là có màn hình và một đôi tay.
Bốn yêu cầu, và ai đáp ứng được chúng
Ghép hai nửa lại với nhau, đặc tả cho một lớp truy xuất ảnh mà một agent có thể thực sự sử dụng hóa ra ngắn gọn và có thể kiểm chứng. Đây cố ý không phải là một bảng so sánh nhà cung cấp — quy mô kho ảnh, giá cả và điều khoản cấp phép được xếp cạnh nhau trong bài so sánh. Bốn điều dưới đây chỉ liên quan đến việc liệu một chương trình có thể chạm tới ảnh hay không:
- Truy xuất ngữ nghĩa — một câu văn đầy đủ trả về một trang được xếp hạng, chứ không phải một tập rỗng.
- Giấy phép miễn phí, nhiều nguồn — không cần cấp phép riêng cho từng ảnh, và không để gu thẩm mỹ của một thư viện duy nhất quyết định mọi trang bạn xuất bản.
- Một máy chủ được lưu trữ với cơ chế đăng nhập riêng — từ xa, OAuth, không có tiến trình cục bộ cần cài đặt và không có API key bên thứ ba nào cần dán vào tệp cấu hình.
- Một gói miễn phí mà một cỗ máy có thể tự hoàn tất — không cần xét duyệt ảnh chụp màn hình, không cần hợp đồng, một hạn mức hàng tháng và một giới hạn tốc độ theo phút mà một worker có thể tự điều tiết.
| Tính đến 18 tháng 8 năm 2026 | Ngữ nghĩa | Giấy phép miễn phí, đa nguồn | Máy chủ lưu trữ + OAuth | Gói miễn phí tự phục vụ |
|---|---|---|---|---|
| Getty Images MCP | Tìm kiếm bằng ngôn ngữ tự nhiên | Kho ảnh có cấp phép, theo hợp đồng | Có, cho chủ tài khoản | Không — cần hợp đồng đang hoạt động |
| Shutterstock qua MCP | Dẫn dắt bằng từ khóa | Kho ảnh có cấp phép, theo gói đăng ký | Có, kèm xác thực tài khoản | Không — cần đăng ký để tải xuống |
| Wrapper Unsplash / Pexels / Pixabay | Không — bên dưới là API từ khóa | Mỗi cái một nguồn duy nhất | Không — tiến trình cục bộ, key của riêng bạn | Kế thừa khâu onboarding thủ công của API gốc |
| Openverse | Không — chỉ mục từ khóa | Có, kho ảnh CC rất rộng | Không có máy chủ MCP chính thức | Có, API mở |
| Pexafy | Có — câu văn, tối đa 500 ký tự | 9 nguồn cấp phép miễn phí, hơn 9 triệu ảnh | Có — mcp.pexafy.com/mcp, OAuth 2.1 |
Có — 5,000 yêu cầu/tháng, 20/phút, không cần thẻ |
Chúng tôi xây dựng Pexafy, nên hãy đọc dòng cuối cùng đó với sự hoài nghi xứng đáng của nó — rồi hãy kiểm chứng: cuộc thu thập registry có thể tái lập trong một script, điều kiện truy cập của Getty và Shutterstock nằm ngay trên trang của chính họ, và hạn mức của ba API ảnh nằm trong tài liệu của riêng chúng, tất cả đều được liên kết ở cuối bài. Khẳng định này hẹp và có thể bị bác bỏ: vào ngày 18 tháng 8 2026 chúng tôi không thể tìm thấy dịch vụ thứ hai đáp ứng cả bốn điều kiện. Nếu bạn biết một dịch vụ như vậy, chúng tôi sẽ thêm nó vào bảng này — mục đích của việc viết ra các yêu cầu là để bất kỳ ai cũng có thể chạy chúng đối chiếu với bất kỳ sản phẩm nào, kể cả sản phẩm của chúng tôi.
Một máy chủ ảnh tốt làm gì qua MCP
Một connector không phải là một REST endpoint được khoác lớp áo mới. Hai cách sử dụng lớp này đã được viết ở nơi khác và không lặp lại ở đây — minh họa cho một bản nháp, trong bài viết về pipeline, và giữ cho một chuỗi bài dài nhất quán về mặt hình ảnh, trong bài viết về quy mô. Điều thuộc về hạ tầng là thứ mà cả hai đều phụ thuộc vào và không ai có thể bổ sung sau đó: ba quyết định phía máy chủ, được thực hiện một lần, cho mọi agent từng kết nối vào.
1. Trả về các đối tượng mà một agent có thể suy luận về chúng. Bất cứ thứ gì công cụ trả về chính là tất cả những gì mô hình biết — nó không thể lướt qua một lưới ảnh. Sự khác biệt giữa hai hình dạng dưới đây là sự khác biệt giữa một trợ lý biết suy luận về ảnh chụp và một trợ lý chỉ chuyển tiếp liên kết:
# Wrapper từ khóa điển hình: agent phải tải và xem, hoặc đoán
[{ "url": "https://…/photo-8795398.jpeg" }, { "url": "https://…/366611.jpg" }]
# Một kết quả, đúng như được trả về — rút gọn ở đây, không thêm gì
{
"rank": 1, // handle mà con người dùng: "cái nào giống #1"
"photo_id": "019e14d9-e821-…", // thứ mà get_similar_photos nhận vào
"width": 6424, "height": 4283, "orientation": "landscape",
"color_hex": "#918872", "blur_hash": "LPI#Px?aDikCGwW?M{kD-VR*s.fl",
"source": "Pexels", "license_type": "free",
"alt_description": "Older couple sits together on wooden bench in a park",
"attribution": { "plain": "Photo by Anastasia Shuraeva on Pexels", "html": "…" },
"urls": { "thumb": "…", "small": "…", "regular": "…", "large": "…" }
}
Với hình dạng thứ hai, một agent có thể nói “#3 là ảnh dọc, nó sẽ phá vỡ vị trí hero của bạn”,
loại bỏ một nhiếp ảnh gia trùng lặp, phát ra dòng ghi công, và trao cho template của bạn một cặp
width/height giúp triệt tiêu hiện tượng dịch chuyển bố cục — mà không
cần tải xuống dù chỉ một ảnh. Với hình dạng thứ nhất, mỗi quyết định trong số đó là một phỏng
đoán hoặc một vòng lặp round trip.
2. Đánh số các kết quả, để một người có thể chỉ tới nó. Kết quả trả về được xếp
hạng #1, #2, #3…, đó là cách bất kỳ ai cũng nhắc đến một bức ảnh trong hội thoại —
“giống #3 hơn” — không cần chép tay bất kỳ định danh nào. Trong các client hỗ trợ MCP Apps, các
hình thu nhỏ được hiển thị nội tuyến, và mở một ảnh sẽ hiện metadata vốn đã có sẵn trong kết quả
công cụ, không tốn thêm lệnh gọi nào.
3. Chỉ đọc, và minh bạch về điều đó. Ba công cụ, không có phạm vi ghi, không thay
đổi tài khoản. Một trong số đó không có tương đương nào trong công cụ từ khóa:
search_photos_by_image nhận một ảnh tham chiếu — hero hiện có của khách hàng, một
ảnh chụp màn hình được dán vào chat — cộng thêm một câu văn tùy chọn để uốn nắn kết quả
(“giống thế này, nhưng vào ban đêm”). Không có trường dữ liệu nào trong một API khớp thẻ
mà yêu cầu đó thậm chí có thể gõ vào được. Và một agent không thể thay đổi bất cứ điều gì là một
agent mà kết quả tệ nhất của nó là một tập kết quả rỗng chứ không phải một phiếu hỗ trợ.
Hai bề mặt, và bạn nên chọn cái nào
Có đúng hai cách để vào, và lựa chọn nằm ở việc ai đang tham gia trong vòng lặp chứ không phải ở năng lực — công cụ và kho ảnh giống hệt nhau ở cả hai.
Connector, khi có một con người tham gia. Một URL duy nhất,
https://mcp.pexafy.com/mcp, được thêm vào một lần trong phần cài đặt connector của
trợ lý; việc đăng nhập diễn ra trong một cửa sổ trình duyệt và client nhận được thông tin xác
thực riêng của nó, vì vậy không có key nào cần dán vào tệp cấu hình và không có key nào cần xoay
vòng sau này. Các client chưa triển khai OAuth gửi một API key Pexafy dưới dạng bearer token đối
với cùng endpoint đó — đây chính là điều giúp connector có thể dùng được từ một cron job trên máy
chủ build, nơi không có ai để bấm “Cho phép”. Hướng dẫn nối dây từng bước cho Claude, ChatGPT và
một tệp cấu hình cho cả đội ngũ nằm trong
bài viết về
pipeline; nó không thay đổi.
HTTP API, khi không có ai tham gia. Một tác vụ theo lô lấp đầy một pool cho 800
cụm chủ đề không nên giả vờ là một client chat: cùng tài khoản, cùng key, HTTP thuần, 100 kết quả
mỗi lệnh gọi. Các quy tắc điều tiết đi kèm với nó — các tiêu đề giới hạn tốc độ, tại sao một
429 theo phút đáng để thử lại còn một 429 theo hạn mức tháng thì không,
chi phí của một worker ở quy mô lớn — thuộc về
bài viết về minh họa ở
quy mô lớn, nơi worker đó được viết ra đầy đủ.
Điểm đáng giữ lại ở đây hẹp hơn, và đó chính là điểm mà nghiên cứu thị trường xoay quanh: cả hai bề mặt đều có thể được một chương trình tiếp cận ngay trong ngày nó được viết ra, không cần hàng đợi, không cần hợp đồng.
Những gì bài viết này không giải quyết
Một danh sách trung thực, vì mỗi điều dưới đây đã từng khiến ai đó phải rollback.
- Giấy phép vẫn chi phối bức ảnh. Ghi công không phải là yêu cầu bắt buộc theo điều khoản API của Pexafy và mọi kết quả đều đi kèm một chuỗi ghi công sẵn sàng để render — nhưng giấy phép gắn kèm bởi thư viện gốc vẫn áp dụng cho việc bạn sử dụng bức ảnh đó. Hãy tự động render dòng ghi công; điều đó rẻ hơn nhiều so với việc kiểm tra lại sau này.
- Các kho ảnh cấp phép miễn phí không phải là kho lưu trữ biên tập. Không có tin tức, không có thể thao, không có thương hiệu hay nhân vật công chúng có thể nhận diện theo yêu cầu. Nếu trang của bạn cần một bức ảnh về một sự kiện hay một người cụ thể, đó là lúc cần đến các đơn vị trả phí lâu năm, và connector của họ giờ đã tồn tại.
- Đây là truy xuất, và chỉ là truy xuất. Sơ đồ, biểu đồ và ảnh chụp màn hình được render từ code, không phải tìm kiếm; việc khử trùng lặp giữa các trang của bạn là một cột trong cơ sở dữ liệu, không phải một tham số trên endpoint; và không bức ảnh nào giúp một trang nội dung mỏng lên hạng — chính sách chống spam của Google đối xử với lạm dụng nội dung quy mô lớn như nhau, bất kể các trang có được minh họa hay không.6 Ba vấn đề đó là các vấn đề pipeline với các lời giải pipeline, được giải quyết trong bài viết về pipeline và bài viết về quy mô.
Bắt đầu từ đâu
- Chạy lại benchmark. Hai mươi dòng, không cần key. Bất kể bạn đang dùng API ảnh nào hôm nay, hãy gửi cho nó ba brief nguyên văn của chính agent bạn và đếm số tập kết quả rỗng.
- Gắn một connector vào trợ lý bạn đang dùng và yêu cầu nó, bằng một câu văn, tìm một bức ảnh bạn thực sự cần trong tuần này. Đó là toàn bộ phép đánh giá.
- Chuyển các brief vào agent — mỗi vị trí một cảnh, được viết từ bản nháp, không bao giờ lấy từ tiêu đề.
- Thêm cột
photo_idtrước khi bạn xuất bản bất cứ thứ gì ở quy mô lớn. - Chạy trên gói miễn phí — 5,000 lượt tìm kiếm mỗi tháng với 20 mỗi phút cho tới khi một cửa sổ build, chứ không phải một hóa đơn, buộc bạn phải nâng cấp.
Nguồn tham khảo & chú thích
1 Đặc tả Model Context Protocol ngày 28 tháng 7 2026: lõi request/response không trạng thái, xác thực issuer theo RFC 9207, Client ID Metadata Documents thay thế Dynamic Client Registration, và tên phương thức/công cụ được mang trong các tiêu đề HTTP để định tuyến gateway.
2 Bản tin báo chí Getty Images, ngày 12 tháng 8 2026 — “Getty Images Launches MCP Server to Connect Creative and Editorial Content to AI Workflows and Products”. Trang truy cập nêu rõ việc sử dụng đòi hỏi một hợp đồng Getty Images đang hoạt động, chẳng hạn như Premium Access, và việc chấp nhận điều khoản Web Service.
3 Kho ảnh của Shutterstock được mở qua một máy chủ MCP cung cấp 24 công cụ (tìm kiếm, bộ sưu tập, cấp phép), được phân phối qua một nền tảng MCP bên thứ ba thay vì được công bố trên cổng dành cho nhà phát triển của chính Shutterstock tại thời điểm viết bài; việc cấp phép và tải xuống yêu cầu một tài khoản có gói đăng ký đang hoạt động.
4 Getty Images Holdings, kết quả cả năm 2025 (báo cáo ngày 16 tháng 3 2026): doanh thu 981,3 triệu USD, tăng 4,5% so với cùng kỳ năm trước.
5 Mordor Intelligence, thị trường ảnh stock: 5,44 tỷ USD năm 2026, tăng trưởng với CAGR 6,86%. Các ước tính quy mô thị trường thay đổi tùy theo phương pháp luận; con số này chỉ được trích dẫn ở đây để cho biết bậc độ lớn.
6 Chính sách chống spam của Google Search — lạm dụng nội dung quy mô lớn: tạo ra nhiều trang chủ yếu để thao túng thứ hạng và mang lại rất ít giá trị cho người dùng, dù được tạo ra bằng tự động hóa, công sức con người hay kết hợp cả hai.
Nguồn gốc, được kiểm tra vào ngày 18 tháng 8 2026: API registry MCP · Đặc tả MCP · Thông báo MCP của Getty Images · Tài liệu API Unsplash · Tài liệu API Pexels · Tài liệu API Pixabay · API Openverse · Chính sách chống spam của Google · Tài liệu API & MCP của Pexafy. Các số liệu Openverse, số kết quả Pexafy và mọi độ trễ trong bài viết này là các giá trị thực được ghi nhận vào ngày đó; các giới hạn gói được đọc từ danh mục giá trực tiếp tại thời điểm hiển thị.
Câu hỏi thường gặp
Vì sao API ảnh stock trả về kết quả rỗng khi một AI agent tìm kiếm?
elderly couple), cùng một kho ảnh đó trả về hàng trăm kết quả. Pixabay giới hạn truy vấn ở 100 ký tự, mà phần lớn yêu cầu của agent tự nó đã vượt quá. Một engine ngữ nghĩa nhúng toàn bộ câu văn, nên các mệnh đề như “tired” hay “at night” sẽ thay đổi thứ hạng thay vì làm gãy kết quả khớp.Có MCP server chính thức nào cho Unsplash, Pexels hay Pixabay không?
MCP server của Getty Images có giá bao nhiêu, và ai có thể dùng?
Một API tìm kiếm hình ảnh cần gì để một AI agent có thể sử dụng được?
Một CI job hay một worker headless có thể dùng MCP image server yêu cầu OAuth không?
mcp.pexafy.com/mcp hoạt động ở chế độ kép: đăng nhập qua trình duyệt cho client tương tác, và cùng một endpoint đó chấp nhận API key của Pexafy dưới dạng Authorization: Bearer <key> hoặc x-api-key cho các client không triển khai luồng OAuth nào — chính điều này khiến nó có thể được dùng từ một cron job hay một build runner nơi không ai có thể bấm “Allow”. Ba công cụ này chỉ đọc (read-only), nên một key runner bị lộ cũng không thể thay đổi tài khoản. Một server chỉ hỗ trợ OAuth tương tác thì hoàn toàn không thể vận hành theo kiểu headless.Làm sao để biết những MCP image server nào tồn tại và mỗi cái yêu cầu gì?
GET registry.modelcontextprotocol.io/v0/servers?search=photo&limit=100 trả về các server khớp với một từ khóa; phân trang bằng giá trị nextCursor trong metadata (lưu ý viết hoa chữ cái giữa — next_cursor sẽ âm thầm chỉ trả về một trang). Trên mỗi mục, remotes cho biết đó là server được lưu trữ sẵn hay một tiến trình cục bộ, còn packages[].environmentVariables liệt kê các API key của bên thứ ba mà bạn sẽ phải tự lấy. Lặp lại việc này trên các từ photo, image, stock và tên các thư viện vào ngày 18/08/2026 cho ra tổng cộng 22.607 server, trong đó 11 server thực hiện tìm kiếm ảnh stock.